除了其他信息(思考地址,客户详细信息等)之外,我还有一条载有XML(订单)的消息,其中包含多个同质节点(想想产品列表) . 我必须使用其他外部服务提供的详细信息来丰富每个“产品”,并使用丰富的“产品”返回相同的完整XML“订单”消息 .
我想出了这一系列步骤:
-
使用xpath拆分原始XML以分隔消息(同时保留原始消息)
-
使用其他数据丰富拆分消息
-
通过替换旧元素将富集的部分放回原始消息中 .
我试图通过向完成拆分和丰富的 endpoints 发送原始消息以及聚合 endpoints 来尝试使用多播,其中原始消息和拆分丰富的消息是聚合,然后传递给负责将这些部分组合回单个xml文件的处理器 . 但我无法达到预期的效果......
解决这个问题的正确和好方法是什么?
1 回答
Camel中的Splitter EIP可以将消息聚合回来(作为组合消息处理器EIP) . http://camel.apache.org/splitter
观看此视频演示了这样一个用例http://davsclaus.blogspot.com/2011/09/video-using-splitter-eip-and-aggregate.html