2017-03-09 84 views
0

你能告訴我登錄的SOAP消息的方式,即使消息是不正確的格式?Spring集成Web服務器日誌文件的SOAP請求消息(即使SOAP消息是不正確的)

<sws:interceptors> 
    <bean class="com.capgemini.manulife.integration.interceptor.LogInterceptor" /> 
</sws:interceptors> 

<!-- inbound --> 
<ws:inbound-gateway id="cas-inbound-gateway" request-channel="casRequestChannel" reply-channel="casResponseChannel" 
     marshaller="casMarshaller"  unmarshaller="casMarshaller" /> 
<int:channel id="casRequestChannel"> 
    <int:interceptors> 
     <int:wire-tap channel="SOAPLogChannel"/> 
    </int:interceptors> 
</int:channel> 
<int:channel id="SOAPLogChannel" /> 
<int:logging-channel-adapter id="logger" expression="payload" level="INFO" channel="SOAPLogChannel"/> 

正如你看到的,我已經在使用PayloadLoggingInterceptor(7.LogInterceptor紀錄延伸PayloadLoggingInterceptor),但它並沒有經過PayloadLoggingInterceptor

謝謝你,最好的問候,

回答

0

這不是Spring集成的問題,但更多的直接使用SOAP。

所以,如果你的XML是不正確的格式,你沒有選擇,除非解組之前手動檢查。

所以,你必須依靠simple<ws:inbound-gateway><int-xml:validating-filter>(或其他一些檢查),只有在那之後執行<int-xml:unmarshalling-transformer>

+0

我試圖設置Jaxb2Unmarshaller Unmarshaller的監聽器,認爲它可以解組之前登錄的消息,但聽者的目的不是爲了這個目的。 –

+0

我們可以使用Servlet過濾器來做到這一點?我認爲這是可能的。嘗試它... :-) –

0

是的,我們可以添加過濾器的Spring Web服務使用FilterRegistrationBean ^^