我有一个配置了死信通道的Camel路由,如下所示:

from(...)
  .errorHandler(deadLetterChannel("vm:deadLetter")
    .useOriginalMessage()
    .retryWhile(method(new BadMessageRuleset(redeliveryTimes), "shouldRetry"))
    .maximumRedeliveries(redeliveryTimes)
    .redeliveryDelay(redeliveryDelayInitial)
    .backOffMultiplier(redeliveryDelayMultiplier)
  ...

from("vm:deadLetter")
    .bean(deadLetterService)
    .end();

它工作正常,但现在我需要保存在将消息发送到死信通道之前发生的重新传送的次数 . 请注意,我正在使用useOriginalMessage(),所以这是我想要在死信通道中保存的消息(是的!我的路线在路上改变它) .

我尝试访问邮件头Exchange.REDELIVERY_COUNTER中的重新传递次数,但当邮件到达deadLetterService bean时,它始终为null . 我明白这是因为原始邮件没有这个 Headers 信息 .

我怎样才能保留重新传送计数器并同时恢复原始信息?有没有办法做到这一点?

提前致谢 .

Heleno的