我正在使用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>
答案 0 :(得分:0)
在运行时使用了错误的camel-context XML文件..忽略问题!