用于 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;
}
}
我们正在使用 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;
}
}