我正在使用基于 spring 集成的组件。该组件接收一些 XML 并用更多内容丰富该 XML。
但是,如果发生异常,那么我想将接收到的输入 XML 作为失败消息发送,但是在当前情况下,它将保留部分丰富的 XML,因为失败消息。
有什么方法可以更改 Exception 的失败消息,而后者又被 Messaging Exception 包装。
最佳答案
由于情况如此特殊,我们需要查看您的配置,尤其是 error-channel
在哪里以及您如何丰富 XML。
但是,请记住,Message
是不可变对象(immutable对象),每次与它的交互都会提供一个新消息。但是 payload
超出了消息传递的范围,它可能不是不可变的。如果更改有效载荷的某些属性然后出现异常,您最终会在 ErrorMessage
中收到 inbound
消息(失败),但有效载荷可能会更改其状态。
看来是你的情况。
在开始丰富它之前,您应该考虑一些payload-cloning
变体。
以下是关于此事的一些建议:https://jira.springsource.org/browse/INT-2979
关于java - 如何在Spring中更改Messaging Exception的Failed Message,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20931921/