如何在Apache Camel中设置Header值的队列名称

时间:2017-07-05 11:10:37

标签: apache-camel activemq spring-dsl

我试图从标题值设置activemq队列名称,但下面没有发生的是我的 Spring DSL

<setHeader headerName="x-so-queue-name" id="_setHeader1">
   <xpath resultType="java.lang.String">/Message/@IntObjectName</xpath>
</setHeader>
<log id="_log1" message="x-so-queue-name::: ${header.x-so-queue-name}"/>
<to id="_to1" uri="activemq:queue:${header.x-so-queue-name}"/>

日志 16:03:57,601 |信息| _route1 | x-so-queue-name ::: IDC_SO_Refill_IO

标题值在日志中打印,但队列名称设置为&#34; $ {header.x-so-queue-name}&#34;为什么它没有检索标题的值,我做错了什么

enter image description here

1 个答案:

答案 0 :(得分:2)

  1. 将'x-so-queue-name'标题名称替换为名为'CamelJmsDestinationName'的标题

  2. 然后在uri中删除$ {header.x-so-queue-name} ..您可以放置​​所需的任何队列名称,因为ActiveMQ组件将查看标头以确定目标名称。我通常使用下面的内容,提醒我在路由中使用动态队列命名:

  3. 参考:Camel JMS Component (search for CamelJmsDestinationName)