2013-05-13 71 views
0

我有一箇中間件,它可以接受SOAP請求,並且可以發出SOAP請求。將SOAP消息標識爲請求或響應

我已經編寫了自定義攔截器來攔截入站和出站請求以將它們記錄到數據庫中。

問題是,當發出SOAP請求時,入局請求被InBound攔截器攔截,當我的模塊發出SOAP請求時,它被出站攔截器攔截,這是正確的。

但我想識別傳入的SOAP消息,因爲它是SOAP請求或SOAP響應,以便我可以正確記錄SOAP請求和響應。

有沒有辦法將SOAP消息標識爲請求或響應?

回答

1

您還可以使用CXF MessageUtils類來做到這一點。對於如:

boolean requestor = MessageUtils.isRequestor(message); 
boolean outbound = MessageUtils.isOutbound(message); 
if (requestor) { 
    if (!outbound) { 
     //This is your RESPONSE message 
    } 
} else { 
    if (!outbound) { 
     //This is your REQUEST message 
    } 
} 
+0

真棒我正在尋找這種解決方案,但沒有得到任何,所以我依靠Moles提到的Http方法。 – NullPointerException 2013-05-16 15:16:32

1

你總是可以得到頭,尋找是否有一個請求方法TCP報頭說POST一個SOAP調用

+0

,我不知道,但不會是永遠POST或者它可以是GET以及 – NullPointerException 2013-05-13 20:49:05

+0

你似乎是在WS方面的專家,我ñ新手到網絡的服務,您可以看看** [this](http://stackoverflow.com/questions/16526506/catching-the-soap-fault-error-in-custom-interceptor-soap12faultoutinterceptor)**以及 – NullPointerException 2013-05-13 20:50:56

+1

SOAP始終是POST消息,但會抵消WSDL – fpmoles 2013-05-14 13:37:11