我试图OSGify
我的项目。
我正在使用Fuse jboss-fuse-6.2.1.redhat-084
,如果我查看osgi:headers
包,我会收到红色错误org.beanio
。
Import-Package =
com.thoughtworks.xstream;version="[1.4,2)",
javax.activation,
javax.mail;version="[1.4,2)",
javax.mail.internet;version="[1.4,2)",
javax.xml.bind,
org.apache.activemq.camel.component,
org.apache.camel;version="[2.15,3)",
org.apache.camel.builder;version="[2.15,3)",
org.apache.camel.dataformat.bindy.fixed,
org.apache.camel.spring.spi;version="[2.15,3)",
org.apache.cxf.interceptor;version="[3.0,4)",
org.apache.log4j;version="[1.2,2)",
org.beanio;version="[2.1,3)",
(others)
错误:
缺少要求osgi.wiring.package; (及(osgi.wiring.package = org.beanio)(版本> = 2.1.0)((版本>!= 3.0.0))))
我没有自己明确导入beanio
:它是从org.jboss.fuse.bom
获取此保险丝的。 camel-beanio version
为2.15.1.redhat-621084
,使用org.beanio v2.1.0
。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-beanio</artifactId>
</dependency>
我grep搜索了osgi:classes
,没有使用v3.0。此外,v3.0甚至不存在。所以,我不知道它在哪里得到#34; [2.1,3)&#34;从。
我研究了如何指定2.1.0,但它只是抱怨它找不到2.1.0。
那我该怎么办?什么都没有导出2.1.0。但我无法从Import-Package中删除它,因为*在搜索代码后包含它。
答案 0 :(得分:1)
正如你自己所说:“camel-beanio版本是2.15.1.redhat-621084并使用org.beanio v2.1.0”。
你只需要在你的pom中使用它:
<dependency>
<groupId>org.beanio</groupId>
<artifactId>beanio</artifactId>
<version>2.1.0</version>
</dependency>
这是在Maven Central,所以它应该有用。
正如我在评论中提到的,您收到的错误消息告诉您需要包含版本&gt; = 2.1.0且不包含&gt; = 3.0的包org.beanio
。
上面的依赖项提供了这个包,你可以看到here。
然而,这似乎不是一个OSGi包...所以你必须wrap it。
答案 1 :(得分:1)
在features.xml
中包含依赖项,如下所示:
<bundle>mvn:org.beanio/beanio/${version}</bundle>
然后,键入features:refreshurl
命令并安装捆绑包