karaf(fuse)捆绑缺失要求osgi.wiring.package中未解决的约束

时间:2016-05-05 07:02:53

标签: maven osgi apache-karaf jbossfuse

我正在尝试安装依赖于另一个的捆绑包。

当我尝试通过maven(存储它)安装它时,我收到以下错误:

install -s mvn:com.mycompany.er/ER_api/0.1218.0
Bundle ID: 544
Error executing command: Error installing bundles:
    Unable to start bundle mvn:com.mycompany.er/ER_api/0.1218.0: Unresolved constraint in bundle com.mycompany.er.ER_api [544]: 
    Unable to resolve 544.0: missing requirement [544.0] osgi.wiring.package; (&(osgi.wiring.package=com.mycompany.application.errors)(version>=0.145.0)(!(version>=1.0.0))) 

捆绑包显示为已安装:

[ 544] [Installed  ] [            ] [       ] [   60] ER_api (0.1218.0)

列出ER_api捆绑包的标头,表明它确实依赖于com.mycompany.application.errors,并且显示为红色。

Import-Package = 
....
com.mycompany.application.errors;version="[0.145,1)",

根据我的理解,所需的版本大于或等于0.145,但小于1.因此版本0.145.0应符合此标准。

有问题的软件包com.mycompany.application.errors在软件包APPLICATION_app_common中可用,该软件包似乎已安装并处于活动状态:

[ 540] [Active     ] [            ] [       ] [   60] APPLICATION_app_common (0.145.0)

检查包是否导出显示它是:

JBossFuse:karaf@root> headers 540
APPLICATION_app_common (540)
----------------------------
Manifest-Version = 1.0
Bnd-LastModified = 1459506884903    
Tool = Bnd-1.50.0
....
Export-Package = 
com.mycompany.application;version=0.145.0,
com.mycompany.application.errors;
    uses:="javax.xml.bind.annotation,
        javax.ws.rs.core,
        com.mycompany.application.smapi";
    version=0.145.0,

使问题复杂化的唯一因素是它不是直接依赖,而是传递依赖。 ER_api取决于ER_transactions_log,这取决于APPLICATION_app_common。我已安装并激活最新版本的ER_transactions_log

[ 511] [Active     ] [            ] [       ] [   60] ER_transactions_log (0.45.0.SNAPSHOT)

我无法理解为什么它无法看到导出的包。 APPLICATION_app_common在其Export-Package列表中清楚地列出了包。

如何调试?

0 个答案:

没有答案