使用Apache CXF处理收录消息

时间:2018-12-12 15:29:52

标签: java cxf jax-ws

对于使用Apache CXF的JAX-WS,应使用以下处理程序来处理在消息处理期间引发的任何异常。例如,这可能是语法错误的格式的SOAP消息。

public class MyHandler implements SOAPHandler<SOAPMessageContext> {

    @Override
    public boolean handleFault(SOAPMessageContext context) {
        // some action
    }
}

现在,问题在于此处理程序从未执行过,因为SOAPHandlerInterceptor的实际implementation检查消息是否出站:

public void handleFault(SoapMessage message) {
    if (binding.getHandlerChain().isEmpty()) {
        return;
    }
    if (getInvoker(message).getProtocolHandlers().isEmpty()) {
        return;
    }
    if (getInvoker(message).isOutbound() // <<< this line
        && !chainAlreadyContainsSAAJ(message)) {
        SAAJ_OUT.handleFault(message);
    }
}    

如果邮件入站,这将阻止我采取任何措施。由于源代码从未发生任何显着变化,因此这似乎是有意的。有其他方法吗?

0 个答案:

没有答案