我将如何处理 cxf out 拦截器中的 soap 错误,但将响应从错误更改为成功响应,我也使用 ws 寻址和 WSS4J 作为响应的一部分。
我正在努力返回
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
ws-address- ws-security
<soap:Body>
<Response>
Ok!
</Response>
</soap:Body>
</soap:Envelope>
而是我目前正在得到
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<soap:Fault>
<soap:Code>
<soap:Value>soap:Receiver</soap:Value>
</soap:Code>
<soap:Reason>
<soap:Text xml:lang="en">Fault occurred while processing.</soap:Text>
</soap:Reason>
</soap:Fault>
</soap:Body>
</soap:Envelope>
文档(http://cxf.apache.org/docs/interceptors.html)说:此外,对于 SOAPFaults,CXF Web 服务将创建一个单独的出站错误处理链,客户端将创建一个入站错误处理链。
所以我认为你必须添加一个InFaultInterceptor/OutFaultInterceptor,你可以在其中处理你的响应消息。