CAMEL:在Spring DSL中为消息添加属性

时间:2014-03-21 14:36:14

标签: java spring jms apache-camel activemq

我在camel中有一个简单的路由,它从activemq队列读取消息' A'并将其写入另一个activemq队列' B'。我能够让这个部分工作。

但我需要在将消息写入' B'之前为消息添加新属性。我试图添加属性' prop1'使用下面的Spring DSL消息,但该属性未添加到消息中。

<camelContext xmlns="http://camel.apache.org/schema/spring">
     <route>
        <from uri="activemq:queue:A"/>
          <setProperty propertyName="prop1">
            <simple>prop1Value</simple>
          </setProperty>
        <to uri="activemq:queue:B"/>
     </route>               
  </camelContext>

这是在SPRING DSL中向邮件添加属性的正确方法吗?

1 个答案:

答案 0 :(得分:2)

使用标题而不是属性:

<route>
    <from uri="activemq:queue:A"/>
    <setHeader headerName="prop1">
        <constant>prop1Value</constant>
    </setHeader>
    <to uri="activemq:queue:B"/>
</route>               
<route>
    <from uri="activemq:queue:B" />
    <log message="prop1 = ${header.prop1}" />
</route>

将Camel标头传输到JMS属性,这些属性会转移回Camel标头,可以看到org.apache.camel.component.jms.JMSBinding的实现。将跳过Camel属性。