2013-04-05 75 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之前添加到消息中的信息,則可以使用服務激活器。

如果你想確保你記錄任何異常,那麼考慮一個段網關和它的消息流中的服務激活器。

相關問題