我需要调整返回到集成流调用者的所有错误消息,这样我就不会泄漏信息,无论它们是作为异常抛出还是作为异步错误处理。我想避免在每个消息处理程序上定义自定义错误通道。 我试图将变压器连接到默认错误通道而没有成功:
@Bean
IntegrationFlow errorFlow() {
return IntegrationFlows.from("errorChannel")
.transform("{'status': 500, 'error': 'Internal Server Error'}")
.get();
}
是否存在可以转换所有传出错误消息的中心点?
答案 0 :(得分:1)
根据您的逻辑,看起来您处理REST - 请求/回复。因此,您需要返回对请求点的回复。这可以通过请求消息的replyChannel
标头获得。您可以在MessagingException.failedMessage
中payload
的{{1}}媒体资源中访问此类信息。
总结您的ErrorMessage
必须.transform()
作为有效负载的所有内容,并生成包含来自MessagingException
的标头的输出消息。这样,消息将被发送到HTTP入站网关请求消息的回复通道。