我开发了一个Spring Integration的路由。在此路由中,我们通过入站网关接收JSON有效负载,沿途执行一些转换和路由,并使用int-ws:outbound-gateway
进行三次连续的SOAP调用(到Tibco AMX BPM)。每个outound-gateway
前面都有一个int-ws:header-enricher
来设置SOAP操作:
<int-ws:header-enricher input-channel="getWorkListItemsRequest1" output-channel="getWorkListItemsRequest2">
<int-ws:soap-action value="getWorkListItems" />
</int-ws:header-enricher>
在新环境中调试应用程序的意外行为时,我们跟踪包含HTTP头的SOAP调用,并发现第一次调用时SOAP操作头设置正确,然后对下两次调用保持相同(系统)表现得好像第二个和第三个header-enricher
被忽略了一样。)
有什么我明显遗失或误解的吗?
提前致谢
答案 0 :(得分:1)
您需要设置覆盖标志...
<int-ws:header-enricher input-channel="getWorkListItemsRequest1" output-channel="getWorkListItemsRequest2">
<int-ws:soap-action value="getWorkListItems" overwrite="true" />
</int-ws:header-enricher>
或
<int-ws:header-enricher input-channel="getWorkListItemsRequest1" output-channel="getWorkListItemsRequest2"
default-overwrite="true">
<int-ws:soap-action value="getWorkListItems" />
</int-ws:header-enricher>