我有一条携带XML(订单)的消息,除了其他信息(例如地址,客户详细信息等)外,该消息还包含多个同质节点(例如产品列表)。我必须用另一个外部服务提供的详细信息丰富每个“产品”,并用丰富的“产品”返回相同的完整XML“订购”消息。

我想出了以下步骤:


使用xpath拆分原始XML以分离消息(也保留原始消息)
使用其他数据丰富拆分消息
通过替换旧元素,将丰富的部分放回原始消息中。


我试图通过将原始消息发送到完成拆分和富集的端点,再发送到原始消息和拆分后的富集消息进行聚合的聚合端点,然后传递给处理器来负责将这些部分组合回到单个xml文件中,从而使用多播。但是我无法达到预期的效果...

解决这个问题的正确和好的方法是什么?

最佳答案

Camel中的Splitter EIP可以将消息聚合回(作为组合消息处理器EIP)。
http://camel.apache.org/splitter

观看演示该用例的视频
http://davsclaus.blogspot.com/2011/09/video-using-splitter-eip-and-aggregate.html

10-05 18:22