新的骆驼,并想知道,鉴于以下路线,我如何存储进入路线的原始信息,以便记录它 . 所以在我的when条件下面,我调用一个bean方法,如果方法返回true,我想将原始消息写入文件 . 下面的这个例子反而想要编写来自bean调用的响应,而不是来自路由的原始消息 .
我正在考虑使用如下所示的setProperty,但后来我不确定如何使用文件组件写出来?
<setProperty propertyName="origInData">
<simple>${body}</simple>
</setProperty>
任何建议都会很棒 . 谢谢
<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>
2 回答
您应该使用方法调用(在bean上调用方法)作为基于内容的路由器中的谓词,例如,使用
<method>
Camel支持使用任何类型的谓词,而不仅仅是简单的语言 .
你是对的 . 使用原始输入设置属性 . 然后,当您需要将其写出来时,使用以下内容将其恢复到邮件正文: