Spring Integration WS响应消息记录

时间:2016-02-09 20:11:36

标签: spring-integration

如果有任何方法拦截发送到ws入站网关的soap响应,请将元信息添加到SOAP标头并将整个soap信封传递给SI文件出站适配器,请将该响应记录在文件中。

1 个答案:

答案 0 :(得分:0)

您应该实施EndpointInterceptor并将其注入AbstractEndpointMapping

在其handleResponse()中,您可以访问

SoapMessage soapMessage = ((SoapMessage) messageContext.getResponse());

执行您想要的任何操作,并将Spring Integration Message发送到<int-file:outbound-channel-adapter>的注入频道。

<强>更新

  

1)发送回ws入站网关的响应也被修改,我不想要。我只想修改发送到文件适配器的soap响应。因为它有一些要记录的元信息2)如何使文件文件出站适配器记录异步..就像wiretap一样。

首先抱歉延迟。

不,你不能用同一个对象做到这一点。这是多线程环境中可变对象的典型问题。如果一个线程修改对象,另一个线程可以看到这些更改在这种情况下,WireTap无济于事。

我建议你以某种方式{@ 1}}你的SOAP Message对象,或者甚至更好地将它转换为String,构建一条新消息,然后才将它发送到文件适配器:

clone