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

无法配置JMS 2.0、ActiveMQ 5.x和Karaf,jms,activemq,apache-karaf,Jms,Activemq,Apache Karaf,我一直在尝试在ApacheKaraf中使用ActiveMQ设置PaxJMS。以下是我安装的各个版本: 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-j

我一直在尝试在ApacheKaraf中使用ActiveMQ设置PaxJMS。以下是我安装的各个版本:

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
以下是我安装的功能:

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
将显示我配置的连接

注意:我遵循了这一点,相信ActiveMQ的步骤也会类似

我的配置如下所示:

jms.url=tcp://localhost:61616
jms.username=system
jms.password=manager
type=activemq
osgi.jndi.service.name=jms/demo.consumer
目前,我只想测试是否可以从Karaf查询ActiveMQ代理。因此,我尝试了
jms:info-jms/demo.consumer
。但是,我始终收到以下错误消息:

执行命令时出错:ActiveMQ不支持JMS 2.0


我尝试过更改版本,也尝试过使用新的karaf实例。但是,我到目前为止运气不好。我是否遗漏了一些基本步骤?

错误信息准确无误。ActiveMQ 5.x不支持JMS 2.0。这不是配置问题。它根本没有实现。如果您想从ActiveMQ代理获得JMS 2.0支持,那么应该使用。值得一提的是,正在使用ActiveMQ Artemis。

pax jms ActiveMQ模块支持ActiveMQ 5.x。命令行工具可能无法工作b/c它调用ConnectionFactory.createContext()而不是.createConnection()。JMS v2.0有两个ActiveMQ 5.x不支持的特性——基本上是共享持久订阅


只要获取ConnectionFactory的代码调用.createConnection()而不是.createContext(),它就可以在JMS API 2.0 JAR中正常工作。Java代码、camel activemq、camel jms等都可以正常工作。

ok。非常感谢你。“那我就和阿耳特弥斯一起试试。”马特帕夫洛维奇,我的回答哪一部分是不正确的?ActiveMQ 5.x是否支持JMS 2.0?也许我误解了这个问题,但他似乎在问关于使用JMS 2.0和ActiveMQ 5.x的问题。环境中的某些东西显然试图使用JMS 2.0。好吧,我的场景是使用pax JMS配置代理(ActiveMQ),并将其与camel一起使用。我还查看了pax jms activemq的源代码。你的回答澄清了这些事情。非常感谢。