ActiveMQ Artemis Anycast 和 Multicast 前缀

ActiveMQ Artemis Anycast and Multicast prefix

我正在使用 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 客户端 hard-coded 使用 jms.queue.jms.topic. 前缀。

如您所见,解决此问题的最简单方法是在 broker.xml 中的适当接受器上配置前缀。我不知道有什么方法可以用 Java 代码解决这个问题。我认为你最好的选择就是升级 Camel 正在使用的 Artemis 客户端实现。