Java Apache骆驼消息作用域

Java Apache骆驼消息作用域,java,jms,apache-camel,Java,Jms,Apache Camel,我已经编写了一个组件(EHComponent)来为其他组件(AComponent)进行错误处理 组件从队列中读取时遇到错误,如果引发异常,消息将获取有关错误集的一些头,并调用.to(“error.queue”)将消息放在另一个队列中,供EHComponent读取 EHComponent检查引用错误类型的消息头,相应地采取行动,设置一些额外的消息头(计算该消息进入错误队列的次数) EHComponent设置该值,然后调用.to(“Original.Queue”),这是组件读取的内容 该问题尚未修复

我已经编写了一个组件(EHComponent)来为其他组件(AComponent)进行错误处理

组件从队列中读取时遇到错误,如果引发异常,消息将获取有关错误集的一些头,并调用.to(“error.queue”)将消息放在另一个队列中,供EHComponent读取

EHComponent检查引用错误类型的消息头,相应地采取行动,设置一些额外的消息头(计算该消息进入错误队列的次数)

EHComponent设置该值,然后调用.to(“Original.Queue”),这是组件读取的内容

该问题尚未修复,因此会引发新的异常,因此该消息会再次通过该过程

我遇到的问题是,第二次通过时,尽管我认为是同一条消息,但我设置的标题不在那里

我的印象是,消息头在Camel中有点稳定,因此即使我在一个新的交换中,消息头也会保持完整。我必须做些什么来确保消息头可以从路由的任何部分的任何组件访问


感谢

邮件头是邮件的一部分,因此由您的传输来保留邮件头。 因此,当您使用组件通过队列发送消息时,请确保保留标题


但是,如果您将属性存储在Exchange上,则这些属性将在Exchange的生命周期内保留。

另请参阅有关在处理消息期间在Camel消息API上使用getIn vs getOut的常见问题解答:。