来自频道。
<!-- messages missing a vital piece of information -->
<int:channel id="inChannel" />
我有一个激活器来阅读消息。
<!-- read the message and prepare an http request for the extra information -->
<int:service-activator
input-channel="inChannel"
output-channel="additionalInformationOutChannel"
ref="additionalInformationEndpointImpl"
method="prepare" >
</int:service-activator>
现在原始消息缺少重要的信息。获得它的唯一方法是通过http从外部系统请求它。
<!-- login -->
<int-http:outbound-gateway
url="http://...login?username=...&password=..."
http-method="..." />
<!-- get information -->
<int-http:outbound-gateway
url="http://...extraInfomration"
http-method="GET"
expected-response-type="java.lang.String"
request-channel="additionalInformationOutChannel" />
<!-- logout -->
<int-http:outbound-gateway
url="http://...logout?username=..."
http-method="..." />
我需要一些方法将上述http响应与原始消息结合起来,以便我可以使用其他信息更新原始消息。
实际上这个过程如下
inChannel
inChannel
更新原始消息。如何创建将所有内容链接在一起的流程?
答案 0 :(得分:0)
使用content (payload) enricher。 http请求将在request-channel
流上执行,结果可用于丰富原始消息的有效负载和/或报头。例如,如果原始有效负载具有setter setAdditionalInformation
,则richher可以根据http交互的结果中的数据设置该属性。