Karaf无法安装jena

Karaf unable to install jena

我正在尝试安装 jena(作为 Islandora 的要求),运行ning Karaf 4.2.11,但是当我 运行 安装命令时,/opt/karaf/bin/client feature:install jena,返回错误。我从 Karaf 日志中获得了错误的全文,位于下方。

2021-09-14T11:10:00,610 | ERROR | Thread-57        | ShellUtil                        | 38 - org.apache.karaf.shell.core - 4.2.11 | Exception caught while executing command
org.apache.felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=jena; type=karaf.feature; version="[4.1.0,4.1.0]"; filter:="(&(osgi.identity=jena)(type=karaf.feature)(version>=4.1.0)(version<=4.1.0))" [caused by: Unable to resolve jena/4.1.0: missing requirement [jena/4.1.0] osgi.identity; osgi.identity=org.apache.jena.osgi; type=osgi.bundle; version="[4.1.0,4.1.0]"; resolution:=mandatory [caused by: Unable to resolve org.apache.jena.osgi/4.1.0: missing requirement [org.apache.jena.osgi/4.1.0] osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=11))"]]
        at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1343) ~[?:?]
        at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:392) ~[?:?]
        at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:378) ~[?:?]
        at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:332) ~[?:?]
        at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:257) ~[?:?]
        at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:401) ~[?:?]
        at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1063) ~[?:?]
        at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread(FeaturesServiceImpl.java:998) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_292]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_292]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_292]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]
Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to resolve jena/4.1.0: missing requirement [jena/4.1.0] osgi.identity; osgi.identity=org.apache.jena.osgi; type=osgi.bundle; version="[4.1.0,4.1.0]"; resolution:=mandatory [caused by: Unable to resolve org.apache.jena.osgi/4.1.0: missing requirement [org.apache.jena.osgi/4.1.0] osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=11))"]
        at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1343) ~[?:?]
        ... 12 more
Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to resolve org.apache.jena.osgi/4.1.0: missing requirement [org.apache.jena.osgi/4.1.0] osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=11))"
        at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1343) ~[?:?]
        at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1343) ~[?:?]
        ... 12 more

我以前没有用过 Karaf,但我查看了很多问题,似乎无法破译错误,但我认为这与 Java 版本有关?我是 运行ning 版本 11.0.11 的 openJDK。不过,在我看来,这就是它要求的版本。我缺少某些配置吗?

我很乐意提供任何其他故障排除信息,我只是找不到从这里去哪里,之前没有与 Karaf 合作过。

这里的问题是 Karaf 运行 和 Java 8。您可以在以下行中看到证据:

at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]

(执行环境为Java1.8.0_292)

耶拿 4.x 需要 Java 11+

为了使用Java11,一定要设置JAVA_HOME环境值指向正确的安装。在基于 linux 的环境中,这通常可以使用 update-alternatives --config java 命令

来处理