繁体   English   中英

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

[英]Not able to configure JMS 2.0, ActiveMQ 5.x, and Karaf

我一直在尝试在 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 实例。 但是,到目前为止我没有运气。 我在这里错过了一些基本步骤吗?

错误信息是准确的。 ActiveMQ 5.x 不支持 JMS 2.0。 这不是配置问题。 它根本没有实施。 如果您希望来自 ActiveMQ 代理的 JMS 2.0 支持,那么您应该使用ActiveMQ Artemis 就其价值而言, 您引用文档使用的是 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 jars 一起工作。 Java 代码、camel-activemq、camel-jms 等都可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM