我编写了一个组件(EHComponent)来对其他组件(AComponent)进行错误处理。
AComponent从队列中读取,遇到错误,如果抛出异常,则消息会获取有关错误集的一些标题,并调用.to(“error.queue”)将消息放入另一个队列供EHComponent阅读。
EHComponent检查引用错误类型的消息头,相应地采取行动,设置一些额外的消息头(计算该消息使其进入错误队列的次数)
EHComponent设置该值,然后调用.to(“Original.Queue”),这是AComponent从中读取的内容。
问题尚未解决,因此抛出了新的异常,因此同样的消息再次通过该过程。
我遇到的问题是第二次通过,即使我认为它是相同的消息,我设置的那些标题也不存在。
我认为邮件标题在Camel中有些稳定,所以即使我在新的交换中,邮件头文件也会完好无损。我需要做些什么来确保可以从路径的任何部分的任何组件访问邮件头?
由于
答案 0 :(得分:0)
标题是邮件的一部分,因此它取决于您的传输以保留标题。 因此,当您使用组件通过队列发送消息时,请确保保留标题。
但是,如果您在Exchange上存储属性,那么它们将在Exchange的生命周期内保留。