Felix中的JMS ActiveMQ OSGI捆绑软件

时间:2019-06-13 07:07:40

标签: jms osgi activemq

我试图在Felix(无Karaf)中添加一个新的OSGI捆绑包作为ActiveMQ客户端(消息发件人)。

ActiveMQ客户端在非OSGI环境中可以很好地工作。但是,当我在Felix中使用相同的代码(进行一些小的修改)时,它将引发此错误:

  

org.osgi.framework.BundleException:无法解决   com.packtpub.felix.bookshelf-inventory-impl-mock [7](R 7.3):丢失   要求[com.packtpub.felix.bookshelf-inventory-impl-mock [7](R   7.3)] osgi.wiring.package; (&(osgi.wiring.package = javax.jms)(版本> = 1.1.0))未解决   要求:[[com.packtpub.felix.bookshelf-inventory-impl-mock [7](R   7.3)] osgi.wiring.package; (&(osgi.wiring.package = javax.jms)(版本> = 1.1.0))]

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

打开邮件包装可以使您的声音清晰明了:

Unable to resolve com.packtpub.felix.bookshelf-inventory-impl-mock[7]

捆绑7(com.packtpub.felix.bookshelf-inventory-impl-mock)有问题

(R 7.3): missing requirement 

您进行了一些更新,并且捆绑软件7在第三个修订版上。虽然这里不相关:-)

osgi.wiring.package;

您缺少一个软件包(osgi.wiring.package是“导入/导出软件包”标头的OSGi命名空间。)

(&(osgi.wiring.package=javax.jms)(version>=1.1.0))

这是LDAP / OSGi过滤器。让我们打开它的包装:

osgi.wiring.package=javax.jms

正在寻找软件包javax.jms

version>=1.1.0

版本应大于或等于1.1.0

软件包javax.jms是Java EE软件包,不是JRE的一部分。您需要找到一个将其导出的捆绑软件(具有正确的版本)。由于您已编译代码,因此您必须已在构建中包含它。找到该捆绑软件,然后将其部署到您的框架中。