我正在研究一些基於Web服務的應用程序,我對Apache CXF解組有一個疑問。在我們的項目中我們使用CXF 2.4.1版本。覆蓋CXF錯誤處理
當一些SOAP請求是不正確(如某些字段是文本,而不是數字)CXF拋出標準SOAPFaultException和構建SOAP響應了類似標準字段:
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Unmarshalling Error: some field missing</faultstring>
</soap:Fault>
項目的要求說,在任何情況下,故障系統需要在其他格式的迴應,如:
<soap:body>
<ResponseState>
<ErrorCode>2732</ErrorCode>
<ErrorMessage>Unmarshalling Error: some field missing</ErrorMessage>
<ErrorDetails> some details </ErrorDetails>
<some other fields>
...
</ResponseState>
</soap:body>
所以,問題是:我怎麼可以重寫這個莫名其妙的錯誤處理,並在我的迴應格式,而不是默認?
在此先感謝。
P.S.我試圖研究一些ValidationEventHandler主體,但它在CXF 2.0和更高版本中以其他方式工作。
感謝您總結了您在這個問題上所做的研究。我現在正面臨類似的挑戰。 – Withheld 2013-10-02 19:18:14