Apache camel ActiveMQ Artemis选播和多播前缀

Apache camel ActiveMQ Artemis选播和多播前缀,apache-camel,activemq-artemis,Apache Camel,Activemq Artemis,我正在使用ActiveMQ Artemis版本2.6.2和ApacheCamel来路由消息 当我在AMQ中将Camel与jms组件连接时,出于某种原因,在ActiveMQ Artemis中,新队列是以jms.queue.作为前缀创建的 我知道如果我在broker.xml中的acceptor上添加以下代码,问题就解决了。但遗憾的是,我没有机会这么做 anycastPrefix=jms.queue。;multicastPrefix=jms.topic. 有没有办法在Java代码中解决这个问题?我尝试

我正在使用ActiveMQ Artemis版本2.6.2和ApacheCamel来路由消息

当我在AMQ中将Camel与jms组件连接时,出于某种原因,在ActiveMQ Artemis中,新队列是以
jms.queue.
作为前缀创建的

我知道如果我在
broker.xml
中的acceptor上添加以下代码,问题就解决了。但遗憾的是,我没有机会这么做

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使用的是Artemis1.x客户端,而不是2.x客户端。1.x客户端经过硬编码以使用
jms.queue.
jms.topic.
前缀


正如您所注意到的,解决此问题的最简单方法是在
broker.xml
中的相应接受程序上配置前缀。我不知道如何用Java代码解决这个问题。我认为最好的选择是升级Camel使用的Artemis客户端实现。

使用
jms.queue创建队列的原因。
前缀几乎可以肯定,因为Camel使用的是Artemis1.x客户端,而不是2.x客户端。1.x客户端经过硬编码以使用
jms.queue.
jms.topic.
前缀


正如您所注意到的,解决此问题的最简单方法是在
broker.xml
中的相应接受程序上配置前缀。我不知道如何用Java代码解决这个问题。我认为最好的办法就是升级Camel正在使用的Artemis客户端实现。

我将Artemis客户端从1.3升级到2.6.2,并且仍然得到前缀jms.queue。排队等候。我还需要一些其他的东西吗?默认情况下,Artemis 2.x客户端中的任何东西都不会使用前缀。因此,我怀疑要么您没有正确升级客户端库,要么您以某种方式手动设置前缀。我只是更新了依赖关系artemis jms客户端,artemis core client和我的pom.xml中的2.6.2版本,我确认打包的是用这些版本生成的。你能在GitHub上用a创建回购吗?嗨@Justin,你是对的。在我的机器上,构建得到的是版本2.6.2,但在服务器上,Jenkins得到的是缓存的版本1.3.0。解决了缓存问题,但缓存消失了。谢谢我将Artemis客户机从1.3升级到2.6.2,并且仍然得到前缀jms.queue。排队等候。我还需要一些其他的东西吗?默认情况下,Artemis 2.x客户端中的任何东西都不会使用前缀。因此,我怀疑要么您没有正确升级客户端库,要么您以某种方式手动设置前缀。我只是更新了依赖关系artemis jms客户端,artemis core client和我的pom.xml中的2.6.2版本,我确认打包的是用这些版本生成的。你能在GitHub上用a创建回购吗?嗨@Justin,你是对的。在我的机器上,构建得到的是版本2.6.2,但在服务器上,Jenkins得到的是缓存的版本1.3.0。解决了缓存问题,但缓存消失了。谢谢