我在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中向邮件添加属性的正确方法吗?
答案 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属性。