Spring Integration - 消息驱动的通道适配器 - 变换器错误句柄,原始消息

时间:2015-11-16 22:02:09

标签: spring spring-integration

我在弹簧集成流程中处理错误时遇到问题。流程是这样的,我的入口点是消息驱动的通道适配器 - >路由器 - >过滤器 - >变压器 - >服务激活器 - >数据库。我使用自定义消息侦听器容器编写了自己的错误处理程序,它按预期工作,但是当我得到异常时,我需要将原始消息保存到数据库中。

问题在于,当我从数据库中获取异常时,错误句柄策略会重新发出MessageHandleException,但异常中的failedMessage是转换的消息,在这种情况下如何获取原始消息?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您应该在header-enricher之后使用message driven channel adapter

<int:header-enricher>
   <int:header name="originalPayload" expression="payload"/>
</int:header-enricher>

并使用failedMessageown error handler的此标头。