我有拆分消息,拆分一条原始消息成为3部分。我需要通过http出站网关顺序发送它。例如,步骤将是这样的。
如何实现这一目标的最佳途径?提前致谢。
答案 0 :(得分:0)
可以使用一系列组件来完成
但是流程可能会有点复杂,难以调试和维护。
将业务流程代码放在一个简单的java类中,并通过messaging gateway为每个http网关调用每个服务可能会更容易。
即。将消息A发送到<service-activator/>
,其中注入了3个网关。
拆分,调用gateway1(将消息发送到http1)检查结果,......,然后聚合并返回最终结果。
修改强>
这就是我的意思......
<int:chain ...>
<int:splitter ... />
<int:aggregator />
<int:header-enricher>
<int:header name="A2" expression="payload.get(1)" />
<int:header name="A3" expression="payload.get(2)" />
</int:header-enricher>
<int:transformer expression="payload.get(0)" />
</int:chain>
然后,调用第一个网关,如果成功,将结果保存在标题中并使用
<transformer ... expression=headers['A2'] />
发送到第二个http等。
要测试成功/失败,您可以使用路由器,或者使用简单的<filter/>
并将失败转到丢弃渠道。