将AMQP与ActiveMQ一起使用会更改JmsDestination标头

时间:2017-06-16 10:26:49

标签: apache-camel amqp

从今天开始,我们将Camel和ActiveMQ与默认JMS和"org.apache.camel.component.jms.JmsComponent"一起使用。当使用像"myJmsComponent:queue:myqueue"这样的队列时,“JmsDestination”标题包含“myqueue”。

现在我们想用"org.apache.camel.component.amqp.AMQPComponent"代替AMQP。 当使用"myAmqpComponent:queue:myqueue"使用相同的队列时,消息的“JmsDestination”标头不再包含“myqueue”,而是包含动态系统名称,例如“org.apache.qpid.amqp_1_0.jms.impl.QueueImpl@718762d8” ,我们无法在其他地方找到队列名称。

在这种情况下我们如何检索队列名称?

1 个答案:

答案 0 :(得分:1)

似乎您正在使用旧版本,该版本从Qpid引入了现已弃用的AMQP 1.0 JMS客户端,因此我建议使用更新的版本,使用支持的Qpid JMS客户端。

您显示的输出似乎代码只是在从Message返回的Destination实例上执行toString,并且该对象没有实现正确的toString,因此您获得默认值。您应该使用返回的目标类型(队列或主题)中的getQueueName或getTopicName。