从Spring Integration执行连续调用时,SOAP Action是否保持不变?

时间:2018-01-10 22:58:12

标签: soap spring-integration spring-ws

我开发了一个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被忽略了一样。)

有什么我明显遗失或误解的吗?

提前致谢

1 个答案:

答案 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>