【发布时间】:2013-05-10 11:43:08
【问题描述】:
我有一个 camel-cxf 网络服务。我用来处理 CXF 的 SOAP 故障拦截器机制中的所有 SOAP 故障。效果很好。
我认为最好在同一层处理Camel层抛出的异常,并编写了一个简单的onException场景如下:
onException(Exception.class)。 to("direct:MyWSExceptionHandler");
每当引发自定义异常时,我都希望 onException 启动(请记住,我也有一个 SOAP 故障拦截器),但它没有。 CXF 正在接管,消息通过拦截器,而不是骆驼路线。
这是预期的方式,还是我做错了什么?
我的 CXF 故障拦截器如下所示:
@Component("SOAPFaultInterceptor")
public class SOAPFaultInterceptor extends AbstractPhaseInterceptor {
public SOAPFaultInterceptor() {
super(Phase.MARSHAL);
}
public void handleMessage(Message message) throws Fault {
// The message is coming here directly, instead of going to the route defined by onException.
}
}
有人能告诉我如何解决这个问题吗?我不希望在 Camel 层生成的异常离开该层而不被处理..
提前致谢。
【问题讨论】:
标签: apache exception-handling cxf apache-camel onexception