使用 url 安装 startup.properties 中列出的 OSGi 包时出现 Karaf 错误

Karaf error installing OSGi bundle listed in startup.properties with url

Karaf 出现时出现以下错误:

使用 url 安装 startup.properties 中列出的捆绑包时出错 - mvn:org.apache.karaf.service/org.apache.karaf.service.guard/3.0.6 = 10

startup.properties内容如下:

mvn\:org.ops4j.pax.url/pax-url-aether/2.4.5 = 5
mvn\:org.ops4j.pax.url/pax-url-wrap/2.4.5/jar/uber = 5
mvn\:org.ops4j.pax.logging/pax-logging-api/1.8.4 = 8
#mvn\:org.ops4j.pax.logging/pax-logging-service/1.8.4 = 8
mvn\:org.ops4j.pax.logging/pax-logging-logback/1.8.4 = 8
mvn\:org.apache.karaf.service/org.apache.karaf.service.guard/3.0.6 = 10
mvn\:org.apache.felix/org.apache.felix.configadmin/1.8.4 = 10
mvn\:org.apache.felix/org.apache.felix.fileinstall/3.5.2 = 11
mvn\:org.ow2.asm/asm-all/5.0.3 = 12
mvn\:org.apache.aries/org.apache.aries.util/1.1.1 = 20
mvn\:org.apache.aries.proxy/org.apache.aries.proxy.api/1.0.1 = 20
mvn\:org.apache.aries.blueprint/org.apache.aries.blueprint.cm/1.0.7 = 20
mvn\:org.apache.aries.proxy/org.apache.aries.proxy.impl/1.0.4 = 20
mvn\:org.apache.aries.blueprint/org.apache.aries.blueprint.api/1.0.1 = 20
mvn\:org.apache.aries.blueprint/org.apache.aries.blueprint.core.compatibility/1.0.0 = 20
mvn\:org.apache.aries.blueprint/org.apache.aries.blueprint.core/1.4.4 = 20
mvn\:org.apache.karaf.deployer/org.apache.karaf.deployer.spring/3.0.6 = 24
mvn\:org.apache.karaf.deployer/org.apache.karaf.deployer.blueprint/3.0.6 = 24
mvn\:org.apache.karaf.deployer/org.apache.karaf.deployer.wrap/3.0.6 = 24
mvn\:org.apache.karaf.region/org.apache.karaf.region.core/3.0.6 = 25
mvn\:org.apache.karaf.features/org.apache.karaf.features.core/3.0.6 = 25
mvn\:org.apache.karaf.deployer/org.apache.karaf.deployer.features/3.0.6 = 26
mvn\:jline/jline/2.13 = 30
mvn\:org.jledit/core/0.2.1 = 30
mvn\:org.apache.karaf.features/org.apache.karaf.features.command/3.0.6 = 30
mvn\:org.apache.karaf.bundle/org.apache.karaf.bundle.core/3.0.6 = 30
mvn\:org.apache.karaf.bundle/org.apache.karaf.bundle.command/3.0.6 = 30
mvn\:org.apache.karaf.shell/org.apache.karaf.shell.console/3.0.6 = 30
mvn\:org.apache.karaf.jaas/org.apache.karaf.jaas.modules/3.0.6 = 30
mvn\:org.apache.karaf.jaas/org.apache.karaf.jaas.config/3.0.6 = 30
mvn\:org.apache.sshd/sshd-core/0.14.0 = 30
mvn\:org.apache.karaf.shell/org.apache.karaf.shell.help/3.0.6 = 30
mvn\:org.apache.karaf.shell/org.apache.karaf.shell.table/3.0.6 = 30
mvn\:org.apache.karaf.system/org.apache.karaf.system.core/3.0.6 = 30
mvn\:org.apache.karaf.system/org.apache.karaf.system.command/3.0.6 = 30
mvn\:org.apache.karaf.shell/org.apache.karaf.shell.commands/3.0.6 = 30
mvn\:org.apache.aries.quiesce/org.apache.aries.quiesce.api/1.0.0 = 30

知道是什么原因吗?

etc/startup.properties 中指定的所有 URI(方案 mvn:)在 Karaf 启动时直接翻译。

实际上解析 mvn: URI是不可能的,因为mvn\:org.ops4j.pax.url/pax-url-aether/2.4.5 bundle是可以执行这种解析的那个,我们会有先有鸡还是先有蛋的问题这里。

所以 Karaf 将这些 mvn: 个 URI 翻译成 file: 个指向 ${karaf.home}/system 的 URI。例如 mvn\:org.ops4j.pax.logging/pax-logging-logback/1.8.4file:${karaf.home}/system/org/ops4j/pax/logging/pax-logging-logback/1.8.4/pax-logging-logback-1.8.4.jar.

如果没有找到,则未解决。请确保您在 Karaf 的 system/ 目录中有 org.apache.karaf.service.guard-3.0.6.jar 包。