如何将多个修改过的消息发送到camel中的一个端点?

时间:2015-07-23 15:05:32

标签: apache-camel

在我的应用程序中,我根据给定的数据结构查询某些标识号的服务。对于每个返回的标识号,我想根据具有标识号的查询数据向同一收件人发送邮件消息:

from("direct:querySource")
.enrich("direct:executeQueryIds", new IdWithDataAggregator())
// here I stuck - want to send the original received message from 
// the querySource n (executeQueryIds) times enrich by iterating
// over executeQueryIds result
.to("smtp://...")
.end()

我尝试使用split根据某个邮件标题拆分邮件,但在拆分中我只将拆分的标头值作为正文,而不是原始邮件。使用聚合器作为第二个参数进行split调用时效果不佳,因为第二次交换是null

我还尝试了loop构造,但我觉得应该有一种更方便,更自觉的方法。

提前致谢!

1 个答案:

答案 0 :(得分:2)

如果您想将单个邮件转换为多条邮件,您仍然希望使用拆分器。你可能想做这样的事情:

from(START)
 .split(). method(SplitBean.class, "splitMessage")
 .to(FINISH);

您可以将标头传入bean方法并手动拆分消息。