用于 http 异常的 Cxf 拦截器

Cxf interceptors for http exceptions

我们正在使用 jaws:client 来使用 Web 服务。我们有 inFaultInterceptor 捕获 soap 错误以供进一步处理。但是对于 404 或 ConnectException 等 http 错误,不会调用此 inFaultInterceptor。我们将拦截器配置为 jaws:client。我们可以编写任何捕获这些 http 异常的拦截器吗?有没有更好的方法来捕获它们?我们想要的只是在发生这种 exception/error 时收回控制权。 注意:由于某些限制,我们无法在 Web 服务代码中捕获它们。

您可以使用 FaultListener 添加到 CXF Bus。侦听器将捕获 http 异常,允许您在代码引发调用方法之前执行代码。

ClientProxy.getClient(jaxWSClientProxy).getBus().getProperties().put("org.apache.cxf.logging.FaultListener",new CxfFaultListenerImpl());

public class CxfFaultListenerImpl implements FaultListener{
    public boolean faultOccurred(final Exception exception,final String description,final Message message) {

        //return false to avoid standard CXF logging of exception
        return false;
    }
}