apache-camel - ActiveMQ Artemis 任播和组播前缀
问题描述
我正在使用 ActiveMQ Artemis 2.6.2 版并使用 Apache Camel 来路由消息。
当我在 AMQ 中将 Camel 与 jms-component 连接时,出于某种原因,在 ActiveMQ Artemis 中,新队列被创建jms.queue.
为前缀。
我知道如果我在接受器上添加以下代码,broker.xml
问题就解决了。但遗憾的是,我无权这样做。
anycastPrefix=jms.queue.;multicastPrefix=jms.topic.
有没有办法在 Java 代码中解决这个问题?我尝试了这些步骤,但没有成功。
from("amq:QUEUE.TEST").setProperty("anycastPrefix", simple("jms.queue."))
from("amq:jms:queue:QUEUE.TEST")
解决方案
使用前缀创建队列的原因jms.queue.
几乎可以肯定是因为 Camel 使用的是 Artemis 1.x客户端而不是 2.x 客户端。1.x 客户端被硬编码为使用jms.queue.
andjms.topic.
前缀。
正如您所注意到的,解决此问题的最简单方法是在broker.xml
. 我不知道有什么方法可以在 Java 代码中解决这个问题。我认为您最好的选择就是升级 Camel 正在使用的 Artemis 客户端实现。
推荐阅读
- android - 右侧带有图标的材质按钮
- java - 在 JPA CriteriaBuilder 中带有 WHERE ANY 运算符的整数 [] 列
- sql - 使用连接获取关联记录
- swift - XMPPFramework 整理文件传输
- html - 如何隐藏图像上的线性背景?
- scala - 计算日期与其前一个日期之间的差异
- c# - 如何获得数据集的总数?
- java - 如何使用 Java 将 PDF 转换为 PS/EPS?
- c# - 分布式 CancellationToken 的抽象
- ios - AutoSizingCells preferredLayoutAttributesFitting 性能 [WWDC 2018]