【问题标题】:How to set Queue name from Header value in Apache Camel如何从 Apache Camel 中的 Header 值设置队列名称
【发布时间】:2017-07-06 00:15:23
【问题描述】:

我正在尝试从标头值设置 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

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

【问题讨论】:

标签: apache-camel activemq spring-dsl


【解决方案1】:
  1. 用名为“CamelJmsDestinationName”的标头替换“x-so-queue-name”标头名称

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

参考:Camel JMS Component (search for CamelJmsDestinationName)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    相关资源
    最近更新 更多