骆驼的CXF组件不要再追onException的(Exception.class)(Camel

2019-09-02 11:46发布

我有一个骆驼CXF web服务了。 我用它来处理所有的SOAP错误的CXF的SOAP错误拦截机制。 这种运作良好。

我认为它能够更好地处理异常的骆驼层在同一层抛出写了一个简单的场景onException的是这样的:

onException的(Exception.class)。 到( “直接: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.
    }
}

有人可以告诉如何解决这一问题? 我不想在骆驼层产生异常离开该层没有被处理..

提前致谢。

Answer 1:

骆驼的onException的唯一的,如果有一个例外triggeres。 SOAP错误被表示为与故障标志一个消息=真。

你可以做的是设置handleFault =上CamelContext属实,那么它会变成SOAP故障信息到一个例外是onException的可根据反应。



文章来源: Camel's CXF component not catching onException(Exception.class)