8.14. 由消息处理器
由消息处理器 复制链接链接已复制到粘贴板!
如 图 8.10 “由消息处理器模式组成” 所示,组成的消息处理器 模式允许您通过分割来处理复合消息,将子消息路由到适当的目的地,然后将响应重新聚合到一个消息中。
图 8.10. 由消息处理器模式组成
Java DSL 示例 复制链接链接已复制到粘贴板!
以下示例检查可以填写多部分顺序,其中每个顺序都要求检查不同的清单:
XML DSL 示例 复制链接链接已复制到粘贴板!
以上路由也可以使用 XML DSL 编写,如下所示:
处理步骤 复制链接链接已复制到粘贴板!
处理首先使用 第 8.4 节 “Splitter” 分割顺序。然后 第 8.4 节 “Splitter” 将独立的 OrderItems
发送到 第 8.1 节 “基于内容的路由器”,它根据项目类型路由信息。向 gadget
发送 小工具 项以检查项将发送到 gadgetInventory bean。在适当的 Bean 验证这些 Inventory
bean 和 gadget 项中OrderItems
后,它们会被发送到 第 8.5 节 “聚合器”,它会收集并重新集合验证的 OrderItems
作为顺序。
每个接收的顺序都有一个标头,其中包含一个 订购 ID。我们在聚合步骤中使用顺序 ID: aggregate()
DSL 命令上的 .header("orderId")
限定符,指示聚合器使用带有键 orderId
的标头,作为关联表达式。
有关完整详情,请检查 camel-core/src/test/java/org/apache/camel/processor 中的 ComposedMessageProcessorTest.java
示例源。