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