【问题标题】:Karaf unable to install jena卡拉夫无法安装耶拿
【发布时间】:2021-09-14 15:23:20
【问题描述】:

我正在尝试安装jena(作为Islandora 的要求),运行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$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 版本有关?我正在运行 11.0.11 版的 openJDK。不过,在我看来,这就是它所要求的版本。有没有我遗漏的配置?

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

【问题讨论】:

  • Islandora 有一个闲散的频道和邮件列表islandora.ca/index.php/community,这也提供了提问的地方(请在此处发布您得到的任何答案)。

标签: jena apache-karaf


【解决方案1】:

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

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

(执行环境为Java 1.8.0_292)

耶拿 4.x 需要 Java 11+

为了使用 Java 11,请务必将 JAVA_HOME 环境值设置为指向正确的安装。在基于 linux 的环境中,这通常可以使用 update-alternatives --config java 命令来处理

【讨论】:

  • 这是解决方案,非常感谢。我必须确保在 karaf 的 setenv 文件中也设置了 JAVA_HOME,然后确保停止并重新启动 karaf 服务。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-10
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
  • 2011-12-02
相关资源
最近更新 更多