我有一个 camel-cxf 网络服务。我用来处理 CXF 的 SOAP 故障拦截器机制中的所有 SOAP 故障。那运作良好。
我认为最好在同一层处理在 Camel 层抛出的异常,并编写了一个简单的 onException 场景,如下所示:
onException(异常。类)。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 层生成的异常离开该层而不被处理..
提前致谢。