Spring集成:如何调整所有传出错误消息

时间:2017-10-30 08:13:58

标签: error-handling spring-integration spring-integration-dsl

我需要调整返回到集成流调用者的所有错误消息,这样我就不会泄漏信息,无论它们是作为异常抛出还是作为异步错误处理。我想避免在每个消息处理程序上定义自定义错误通道。 我试图将变压器连接到默认错误通道而没有成功:

@Bean
IntegrationFlow errorFlow() {
    return IntegrationFlows.from("errorChannel")
            .transform("{'status': 500, 'error': 'Internal Server Error'}")
            .get();
}

是否存在可以转换所有传出错误消息的中心点?

1 个答案:

答案 0 :(得分:1)

根据您的逻辑,看起来您处理REST - 请求/回复。因此,您需要返回对请求点的回复。这可以通过请求消息的replyChannel标头获得。您可以在MessagingException.failedMessagepayload的{​​{1}}媒体资源中访问此类信息。

总结您的ErrorMessage必须.transform()作为有效负载的所有内容,并生成包含来自MessagingException的标头的输出消息。这样,消息将被发送到HTTP入站网关请求消息的回复通道。