【发布时间】:2012-03-23 13:59:53
【问题描述】:
大家好,当我需要对 XML 请求进行“复合”处理时,我遇到了以下情况。这是我的 spring 路线定义中的 sn-p:
<route id="request1">
<from uri="activemq:request1" />
<unmarshal ref="integrationServerJaxb" />
<bean ref="createTINValidationMessage" />
<bean ref="switchComponent" />
<bean ref="createCreateTINMessage" />
<bean ref="switchComponent" />
<bean ref="createResponse1" />
<marshal ref="integrationServerJaxb" />
</route>
基本上我想要实现的是:
- 从 request1 消息队列中获取消息
- 从中创建 TIN VALIDATION 消息
- 向交换机发送 TIN VALIDATION 消息
- 等待开关响应
- 使用来自步骤 4 的切换响应和初始请求 1 XML 消息,创建 CREATE TIN 消息
- 向交换机发送消息(从第 5 步开始)
- 根据来自交换机的响应创建响应 XML(从第 6 步开始)
也就是说,我需要在处理过程中获取初始消息。在 CreateCreateTINMessage bean 中,我可以将方法参数更改为 Message 类型,然后它将映射到实际的 Camel 消息(尽管来自上一步),而不是交换中的第一条消息。检查消息的交换,我可以使用 request1 xml 有效负载跟踪初始 JMS 消息,但深入到该深度似乎并不正确。我的问题是,是否有可能以某种方式与来自路由的中间结果和初始消息进行集成?谢谢。
【问题讨论】:
-
最终使用 Exchange 作为方法参数并设置交换属性以便在后续处理器中进一步检索。
标签: java integration apache-camel