从 Spring 集成执行连续调用时,SOAP 操作是否保持不变?
Does SOAP Action remain the same when performing successive calls from Spring Integration?
我开发了一条 Spring 集成的路线。在此路由中,我们通过 inbound-gateway 接收 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 headers 在内的 SOAP 调用,发现 SOAP 操作 header 为第一个调用设置正确接下来的两次调用保持不变(系统表现得好像忽略了第二个和第三个 header-enricher
)。
有什么我明显遗漏或误解的吗?
提前致谢
您需要设置覆盖标志...
<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>
我开发了一条 Spring 集成的路线。在此路由中,我们通过 inbound-gateway 接收 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 headers 在内的 SOAP 调用,发现 SOAP 操作 header 为第一个调用设置正确接下来的两次调用保持不变(系统表现得好像忽略了第二个和第三个 header-enricher
)。
有什么我明显遗漏或误解的吗?
提前致谢
您需要设置覆盖标志...
<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>