Camel ErrorHandler没有调用

时间:2016-05-13 10:34:25

标签: apache-camel

我正在使用cxf:cxfEndpoint调用WS并且它正常工作。我想使用onException或类似的东西捕获任何异常。由于某种原因它不起作用。我已将dataFormat设置为PAYLOAD,将路由上的handleFault属性和/或驼峰上下文设置为true。 Web服务没有运行,所以我期待抓住异常,但它无法正常工作。与解组XML相同的问题。

当我使用它抛出一个异常时,使用java.lang.Exception成功捕获并写入我的虚拟异常队列...但是当webservice关闭或者我传入一些无效的XML并且编组失败时会出现异常抛出但没有被抓住。

还有什么需要注意的吗?

编辑:包括解编的代码。切换到使用Try / Catch,当我传入无效的XML时,异常会在junit测试期间被捕获但不会在运行时被捕获

    <route>
        <from uri="jmsamq:In"/>
        <doTry>
            <unmarshal>
                <jaxb contextPath="outbound.message"/>
            </unmarshal>
            <doCatch>
                <exception>java.lang.Exception</exception>
                <handled>
                    <constant>true</constant>
                </handled>
                <transform>
                    <simple>Mapping Failed</simple>
                </transform>
                <to uri="jmsamq:errorqueue1"/>
            </doCatch>
        </doTry>
        <log message="${body}"/>
        <multicast stopOnException="true">
            <to uri="direct:webservice"/>
            <to uri="direct:myqueue"/>
        </multicast>
    </route>

1 个答案:

答案 0 :(得分:0)

在运行时使用了错误的camel-context XML文件..忽略问题!