无法配置JMS 2.0,ActiveMQ 5.x和Karaf



我一直在尝试使用Apache Karaf中的ActiveMQ设置PAX-JM。以下是我已经安装的各自的版本:

activemq-osgi: 5.15.3
OPS4J Pax JMS * : 1.0.3
Karaf: 4.2.0
JMS API: 2.0.1

这些是我安装的功能:

> feature:repo-add mvn:org.ops4j.pax.jms/pax-jms-features/1.0.3/xml/features 
> feature:install pax-jms-activemq pax-jms-config

我可以看到我的配置正在正确拾取。因此,执行命令jms:connectionfactories显示了我配置的连接。

注意:我关注https://ops4j1.jira.com/wiki/spaces/paxjms/pages/331350050/configuration,相信这些步骤也与ActiveMQ相似。

我的配置看起来如下:

jms.url=tcp://localhost:61616
jms.username=system
jms.password=manager
type=activemq
osgi.jndi.service.name=jms/demo.consumer

目前,我只是想测试我是否可以从卡拉夫查询ActiveMQ经纪人。因此,我尝试了jms:info jms/demo.consumer。但是,我一直收到以下错误消息:

Error executing command: JMS 2.0 is not supported by ActiveMQ

我尝试更改版本,也尝试在Fresh Karaf实例上尝试。但是,到目前为止,我没有运气。我在这里错过了一些基本步骤吗?

pax-jms-activemq模块支持activemq 5.x。命令行工具可能无法使用b/c,它调用ConnectionFactory.CreateContext()而不是.createConnection()。JMS v2.0具有几个功能,即ActiveMQ 5.X不支持 - 基本上是共享耐用的订阅。

只要获取连接factory调用的代码.createConnection()而不是.createContext(),它就可以与JMS API 2.0罐子一起使用。Java Code,Camel-Activemq,Camel-JMS等都可以正常工作。

错误消息准确。ActiveMQ 5.X不支持JMS 2.0。这不是配置问题。它根本没有实现。如果您想要ActiveMQ经纪人的JMS 2.0支持,则应使用ActiveMQ Artemis。对于它的价值,您引用的文档是使用ActiveMQ Artemis。

最新更新