分裂,丰富和重新组合

Mar*_*kus 2 java apache-camel

除了其他信息(思考地址,客户详细信息等)之外,我还有一条载有XML(订单)的消息,其中包含多个同质节点(想想产品列表).我必须使用其他外部服务提供的详细信息来丰富每个"产品",并使用丰富的"产品"返回相同的完整XML"订单"消息.

我想出了这一系列步骤:

  1. 使用xpath拆分原始XML以分隔消息(同时保留原始消息)
  2. 使用其他数据丰富拆分消息
  3. 通过替换旧元素将丰富的部分放回原始消息中.

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

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

Cla*_*sen 5

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

观看此视频演示了这样一个用例 http://davsclaus.blogspot.com/2011/09/video-using-splitter-eip-and-aggregate.html

  • 您可以将原始消息存储为交换机上的属性,然后在AggregationStrategy中获取该消息. (3认同)