java - 如何在Spring中更改Messaging Exception的Failed Message

标签 java spring error-handling spring-integration

我正在使用基于 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/

相关文章:

java - 在 Maven 中配置 JUnit 目录结构

python - IOError : [Errno 13]

javascript - 无法在使用 .append() 添加的图像上调用 jQuery .error()

sql-server - 如何捕获从链接服务器返回的错误消息?

java - 如何使用 ScriptEngine 将 Javascript 的输出转换为 Java

java - 在更新删除和插入时将电话簿联系人与我的应用程序同步的最佳方式

java - NetBeans 分析菜单....丢失?

java - Spring Boot应用程序无法连接到Weblogic

java - Spring Boot方法验证

Java:如何使用 java jdbc for Sql Server 使用标识列执行批量插入