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

问题描述 投票:-1回答:2

我一直在尝试在Apache karaf中使用ActiveMQ设置pax-jms。以下是我安装的相应版本:

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

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

Error executing command: JMS 2.0 is not supported by ActiveMQ

我试过改变版本,尝试了新的karaf实例。但是,到目前为止我没有运气。我在这里错过了一些基本步骤吗?

jms activemq apache-karaf
2个回答
0
投票

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等都可以正常工作。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.