【发布时间】:2017-08-02 03:22:51
【问题描述】:
我有一个工作流,其消息有效负载 (MasterObj) 被丰富了几次。在第二次扩充 () 期间,出站网关引发了 UnknownHostException。我在丰富器上的错误通道被调用,但错误通道接收到的消息是一个异常,并且该异常中的失败消息不再是我的 MasterObj(原始有效负载),但它现在是从 request-payload-expression 获取的对象丰富者。
丰富器调用出站网关,并且在业务方面这是可选的。我只想使用我一直在丰富的有效负载继续我的工作流程。文档说,浓缩器上的错误通道可用于提供备用对象(对于浓缩器的请求通道将返回的对象),但即使我从浓缩器的错误通道返回一个对象,它仍然会将我带到工作流的整体错误通道。
我如何捕获来自丰富器 + 出站网关的错误,并使用我一直在处理的相同负载继续处理我的工作流?
尝试为整个工作流程维护单个有效负载对象是正确的策略吗?我需要能够在需要时访问它。
我正在考虑使用一个 bean 范围为我存储有效负载的会话,但这似乎违背了 SI 的目的,不是吗?
谢谢。
【问题讨论】:
标签: spring error-handling spring-integration