我想在重新传递阶段处理失败的消息(在重试阶段结束时正常工作)。 我在异常中使用了“onRedeliveryRef”,但是这个处理器似乎在重试之前执行而不是之后执行,因此错误消息似乎不可用(因为它在de default log中)。
任何帮助都会很感激。
<bean id="myRedeliveryProc" class="com.mycomp.MyRedeliveryProc"/>
此处理器只是在进程方法中记录错误消息: log.info( “异常:” + exch.getException());
CamelContext:
<redeliveryPolicyProfile id="rpp" maximumRedeliveries=3 redeliveryDelay="5000"/>
<onException onRedeliveryRef="myRedelivryProc" redeliveryPolicyRef="rpp>
<exception>java.lang.Exception</exception>
...
</onException>
在日志中:
MyRedeliveryProc | 422 | m22 | 1.0.0 | Exceptions:null
答案 0 :(得分:2)
尝试使用
获取例外异常原因= exchange.getProperty(Exchange.EXCEPTION_CAUGHT,Exception.class);
如
中所述http://camel.apache.org/why-is-the-exception-null-when-i-use-onexception.html