我正在尝试安装jena (作为Islandora的一个要求),运行Karaf4.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$13(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版本有关?我运行的是openJDK的11.0.11版。但在我看来,这就是它所要求的版本。我是不是遗漏了什么配置?
我很乐意提供任何其他的故障排除信息,我只是找不到从这里到哪里去,因为以前没有使用过Karaf。
发布于 2021-09-16 11:58:53
这里的问题是Karaf是与Java 8一起运行的。你可以在下面的代码行中看到证据:
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292](执行环境为Java 1.8.0_292)
Jena 4.x需要Java 11+
为了使用Java11,请确保将JAVA_HOME环境值设置为指向正确的安装。在基于linux的环境中,这通常可以使用update-alternatives --config java命令来处理
https://stackoverflow.com/questions/69180521
复制相似问题