我想使用分隔符",“迭代字符串,然后将消息发送到几个端点。问题是,如果我使用Splitter,它将替换我消息的正文内容。
from("switchyard://ICamelServiceProcess")
.process(new Processor() {
String recipients = "abc";
recipients += "," + "bcd";
exchange.getIn().setHeader("recipients", recipients);
}
.to("switchyard://ICamelServiceRoute");在服务ICamelServiceRoute中,我希望使用分隔符",“遍历header.recipients值,然后创建一个名为”每次迭代“的文件。
你能告诉我一些解决方案吗?谢谢。
发布于 2017-07-11 20:15:33
您可以在拆分器之前将原始体保存在exchange属性中,并在完成拆分器时从属性中恢复它。使用Camel 2.15或更高版本
<setProperty propertyName="originalBody">
<simple>${body}</simple>
</setPropery>
<split>
<!-- Splitter function -->
</split>
<setBody>
<simple>${exchageProperty[originalBody]}</simple>
</setBody>执行完camel上下文后,所有交换属性都将被删除。请注意,您可以将Java对象保存在交换属性中,但只能保存到camel上下文结束
https://stackoverflow.com/questions/21036080
复制相似问题