Spring 集成:如何调整所有传出错误消息
Spring integration: how to adjust all outgoing error messages
我需要调整返回给我的集成流调用者的所有错误消息,这样我就不会泄露信息,无论它们是作为异常抛出还是作为异步错误处理。我想避免在每个消息处理程序上定义自定义错误通道。
我尝试将转换器附加到默认错误通道,但没有成功:
@Bean
IntegrationFlow errorFlow() {
return IntegrationFlows.from("errorChannel")
.transform("{'status': 500, 'error': 'Internal Server Error'}")
.get();
}
是否有一个可以转换所有传出错误消息的中心点?
根据您的逻辑,您似乎在处理 REST - request/reply。所以,你需要return回复请求点。这可以通过请求消息的 replyChannel
header 获得。这样的信息你可以在MessagingException.failedMessage
属性的payload
中的ErrorMessage
中获取。
总结一下您的 .transform()
必须期望 MessagingException
作为有效负载并通过从 failedMessage
复制 header 生成输出消息。这样消息就会被发送到 HTTP Inbound Gateway 请求消息的回复通道。
我需要调整返回给我的集成流调用者的所有错误消息,这样我就不会泄露信息,无论它们是作为异常抛出还是作为异步错误处理。我想避免在每个消息处理程序上定义自定义错误通道。 我尝试将转换器附加到默认错误通道,但没有成功:
@Bean
IntegrationFlow errorFlow() {
return IntegrationFlows.from("errorChannel")
.transform("{'status': 500, 'error': 'Internal Server Error'}")
.get();
}
是否有一个可以转换所有传出错误消息的中心点?
根据您的逻辑,您似乎在处理 REST - request/reply。所以,你需要return回复请求点。这可以通过请求消息的 replyChannel
header 获得。这样的信息你可以在MessagingException.failedMessage
属性的payload
中的ErrorMessage
中获取。
总结一下您的 .transform()
必须期望 MessagingException
作为有效负载并通过从 failedMessage
复制 header 生成输出消息。这样消息就会被发送到 HTTP Inbound Gateway 请求消息的回复通道。