我正在研究一些基于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