ServiceMix 7.0.1 Windows 7的; Java 1.8.x commons-io / commons-io / 2.4 / commons-io-2.4.jar(注意:jar是一个包;不需要包裹)
<features name="smx7-test" xmlns="http://karaf.apache.org/xmlns/features/v1.4.0">
<feature name="smx7-test" version="1.0.0-SNAPSHOT">
<bundle dependency="true" start="true">mvn:commons-io/commons-io/2.4</bundle>
</feature>
我缺少的ServiceMix 7.x(7.0.1)中有什么不同,或者我需要配置标准功能还是其他功能?
feature.xml(上面)中的commons-io jar / bundle依赖项在安装/启动功能后永远不会启动。这不仅仅与commons-io jar / bundle隔离。我对antlr-runtime-4.7.jar和commons-beanutils.jar等问题也有同样的问题。我刚刚设置了一个小样本测试用例,使用commons-io快速部署和测试。
使用以下命令安装该功能:
功能:repo-add mvn:smx7 / smx7-test / 1.0.0-SNAPSHOT / xml / features 功能:安装smx7-test
我可以做一个功能:list | grep smx7-test,该功能显示已安装并启动。
karaf @ root&gt;功能:列表| grep smx7-test smx7-test | 1.0.0.SNAPSHOT | x |开始| smx7测试
但是一个捆绑:karaf控制台中的列表表明common-io捆绑包不在列表中。如果我在servicemix 6.x中复制以上所有内容,则所有工作都按预期工作。这就是列出并启动了commons-io包。
如果我尝试在上面的7.0.1实例中部署业务层捆绑包,那么想要导入commons-io包/类,业务层捆绑包将永远不会启动(仅显示为已安装)。 servicemix.log中的错误是预期的,因为commons-io bundle从未启动过: 缺少要求 [test [222](R 222.2)] osgi.wiring.package; (及(osgi.wiring.package = org.apache.commons.io)(版本&GT; = 1.4.0)((版本&GT;!= 2.0.0)))
注意:commons-io-2.4 jar / bundle MANIFEST.MF Export-Package内容是向后兼容的,因此上面的错误中的版本参数。我尝试修改我的业务层捆绑MANIFEST.MF以允许上面指出的范围,它没有任何影响。
欢迎任何ServiceMix 7建议!!