如何在重新传递期间访问异常消息

时间:2014-11-06 14:29:34

标签: apache-camel apache-servicemix

我想在重新传递阶段处理失败的消息(在重试阶段结束时正常工作)。 我在异常中使用了“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

1 个答案:

答案 0 :(得分:2)

尝试使用

获取例外

异常原因= exchange.getProperty(Exchange.EXCEPTION_CAUGHT,Exception.class);

中所述

http://camel.apache.org/why-is-the-exception-null-when-i-use-onexception.html