我正在使用基于Spring集成的Component。这些组件接收一些XML并使用更多内容丰富了XML。
但是,如果发生异常,那么我想将收到的输入XML作为失败的消息发送,但是在当前场景中,它将保留部分丰富的XML,因为消息失败。
有没有什么方法可以更改Exception的失败消息,而消息又被Messaging Exception包裹。
答案 0 :(得分:1)
由于具体情况如此,我们需要查看您的配置,尤其是error-channel
以及如何丰富XML。
但是,请记住,Message
是不可变对象,每次与它的交互都会提供一条新消息。但是payload
超出了messsaging的范围,它可能不是不可变的。如果更改了有效负载的某些属性,然后出现了异常,则最终会在ErrorMessage
中显示inbound
消息(失败),但有效负载可能会更改其状态。
看起来是你的情况。
在开始丰富它之前,你应该考虑一些payload-cloning
变体。
以下是有关此问题的一些建议:https://jira.springsource.org/browse/INT-2979