Apache camel 将原始驼峰消息写入文件
刚接触camel,我想知道,鉴于下面的路由,我如何存储进入路由的原始消息以记录它。因此,在下面的when条件中,我调用一个bean方法,如果该方法返回true,我想将原始消息写入一个文件。下面的示例希望编写来自bean调用的响应,而不是进入路由的原始消息 我正在考虑使用下面这样的setProperty,但是我不知道如何使用file组件写出它Apache camel 将原始驼峰消息写入文件,apache-camel,Apache Camel,刚接触camel,我想知道,鉴于下面的路由,我如何存储进入路由的原始消息以记录它。因此,在下面的when条件中,我调用一个bean方法,如果该方法返回true,我想将原始消息写入一个文件。下面的示例希望编写来自bean调用的响应,而不是进入路由的原始消息 我正在考虑使用下面这样的setProperty,但是我不知道如何使用file组件写出它 <setProperty propertyName="origInData"> <simple>${body}<
<setProperty propertyName="origInData">
<simple>${body}</simple>
</setProperty>
${body}
任何建议都很好。谢谢
<route>
<from uri="direct:processOrders"/>
<bean method="isMaster" ref="mybean"/>
<choice>
<when>
<simple>${body} == true</simple>
<to uri="file:c:/out/messages/?fileExist=Append&fileName=messages.txt"/>
</when>
<otherwise>
<log message="********* I'M IN SLAVE MODE - DO NOTHING"/>
</otherwise>
</choice>
</route>
${body}==true
你说得对。使用原始输入设置属性。然后,当您需要将其写出来时,使用如下方式将其带回消息正文:
<setBody><simple>${property.origInData}</simple></setBody>
${property.origInData}
您应该在基于内容的路由器中使用方法调用(调用bean上的方法)作为谓词,例如使用
...
...
Camel支持使用任何类型的谓词,不仅仅是简单的语言。Claus将其改为方法调用,但我相信setProperty会像Petter提到的那样工作。你的男人!谢谢
<choice>
<when>
<method method="isMaster" ref="mybean"/>
...
</when>
<otherwise>
...
</otherwise>
</choice>