2013-04-05 69 views
0

我配置了基于Web Service的入站消息传递网关。我想记录传入的SOAP消息(信封和其中的所有内容)。什么是最好的方式来做到这一点?如何在Spring集成中记录收到的SOAP消息

我已经尝试使用带日志记录通道适配器的电线分接头,但不知道其获取实际SOAP XML的良好表达式值。如果入站网关被配置为不提取有效负载,那么我会将SaajSoapMessage视为有效内容,否则将看到DOMSource。是否有一个表达式将SaajSoapMessage作为XML字符串?

这里是我的配置与我能看到SaajSoapMessage的的toString():

<int:channel id="request"> 
    <int:interceptors> 
     <int:wire-tap channel="logger"/> 
    </int:interceptors> 
</int:channel> 
<int:logging-channel-adapter id="logger" expression="payload" level="DEBUG"/> 

<int:channel id="reply"/> 
<int-ws:inbound-gateway id="ws-inbound-gateway" request-channel="request" reply-channel="reply" 
         extract-payload="false"/> 

回答

0

的Spring Web服务提供了可以使用拦截器。

如果您使用编组器和解组器,那么它们都具有可以在编组/解组之前和之后执行某些操作的监听器。

如果您需要捕获在ws-inbound-gateway之前添加到消息中的信息,则可以使用服务激活器。

如果你想确保你记录任何异常,那么考虑一个段网关和它的消息流中的服务激活器。

相关问题