Karaf 从 4.2.0.M1 升级到 4.2.0.M2 的错误

问题描述

我们正在升级 Karaf,在从 4.2.0.M1 过渡到 4.2.0.M2 的过程中,我们注意到几个与 BootFeatures 相关的错误

2021-02-04T15:43:17,674 | ERROR | activator-1-thread-2 | BootFeaturesInstaller            | 11 - org.apache.karaf.features.core - 4.2.1 | Error installing boot features
org.apache.Felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=ssh; type=karaf.feature; version="[4.3.1.SNAPSHOT,4.3.1.SNAPSHOT]"; filter:="(&(osgi.identity=ssh)(type=karaf.feature)(version>=4.3.1.SNAPSHOT)(version<=4.3.1.SNAPSHOT))" [caused by: Unable to resolve ssh/4.3.1.SNAPSHOT: missing requirement [ssh/4.3.1.SNAPSHOT] osgi.identity; osgi.identity=org.apache.karaf.shell.ssh; type=osgi.bundle; version="[4.3.1.SNAPSHOT,4.3.1.SNAPSHOT]"; resolution:=mandatory [caused by: Unable to resolve org.apache.karaf.shell.ssh/4.3.1.SNAPSHOT: missing requirement [org.apache.karaf.shell.ssh/4.3.1.SNAPSHOT] osgi.wiring.package; filter:="(&(osgi.wiring.package=org.apache.karaf.jaas.boot.principal)(version>=4.3.0)(!(version>=5.0.0)))" [caused by: Unable to resolve org.apache.karaf.jaas.boot/4.3.1.SNAPSHOT: missing requirement [org.apache.karaf.jaas.boot/4.3.1.SNAPSHOT] osgi.wiring.package; filter:="(&(osgi.wiring.package=org.osgi.framework)(version>=1.9.0)(!(version>=2.0.0)))"]]]

尽管每次出现错误功能名称都不同(例如 kar 和 ssh),但错误总是看起来很相似,所以似乎所有 BootFeatures 都失败了,随机一个只是首先显示错误。 Karaf 功能的管理方式似乎从 4.2.0.M1 更改为 4.2.0.M2。

我们使用 Java 8 和 Osgi 6。除此之外,我们使用 Gradle 作为构建系统,使用 Aether 库 (org.ops4j.pax.url.mvn) 来处理 Maven 工件/包解析。

这是我们的 org.apache.karaf.features.cfg 文件内容

featuresRepositories = \
    mvn:org.apache.karaf.features/framework/4.2.0.M2/xml/features,\
    mvn:org.apache.karaf.features/spring/4.2.0.M2/xml/features,\
    mvn:org.apache.karaf.features/standard/4.2.0.M2/xml/features,\
    mvn:org.apache.karaf.features/enterprise/4.2.0.M2/xml/features,\
    mvn:org.apache.activemq/activemq-karaf/5.16.1/xml/features,\
    mvn:org.apache.cxf.karaf/apache-cxf/3.2.7/xml/features,\
    mvn:org.apache.cxf.dosgi/cxf-dosgi/2.3.0/xml/features,\
    mvn:org.ops4j.pax.jdbc/pax-jdbc-features/1.4.5/xml/features,\
    file:/opt/data/features/feature.xml

featuresBoot = \
    (instance,\
    package,\
    log,\
    ssh,\
    aries-blueprint,\
    framework,\
    system,\
    eventadmin,\
    feature,\
    shell,\
    management,\
    service,\
    jaas,\
    shell-compat,\
    deployer,\
    diagnostic,\
    wrap,\
    bundle,\
    config,\
    kar,\
    jndi,\
    jdbc,\
    transaction,\
    pax-jdbc-config,\
    pax-jdbc-pool-common,\
    pax-jdbc-postgresql,\
    pax-jdbc-pool-c3p0,\
    cxf-core,\
    cxf-jaxrs,\
    cxf-jaxws,\
    cxf-dosgi-provider-rs,\
    cxf-dosgi-provider-ws,\
    activemq-broker-Noweb),\
    (local_bundle_1,...,local_bundle_N)

featuresBootAsynchronous=false

有没有人知道从 4.2.0.M1 升级到 4.2.0.M2 后可能导致这些错误的原因是什么?

提前致谢

解决方法

Karaf 正在为您解析最新版本的 ssh 功能。要更正,请为日志中显示的版本添加黑名单条目

文件:etc/org.apache.karaf.features.xml

"C:\\Yolo_v4\\darknet\\build\\darknet\\x64\\f047.png"

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...