当前位置: 首页 > 知识库问答 >
问题:

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

微生令
2023-03-14

我需要调整返回到集成流调用方的所有错误消息,以便不泄漏信息,无论它们是作为异常抛出还是作为异步错误处理。我希望避免在每个消息处理程序上定义自定义错误通道。我尝试将转换器连接到默认错误通道,但未成功:

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

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

共有1个答案

羊舌子瑜
2023-03-14

根据您的逻辑,看起来您处理的是REST-请求/回复。因此,您需要向请求点返回回复。这可以通过请求消息的副本通道标头获得。您可以在ErrorMessage有效负载MessagingException.failedMessage属性中访问此类信息。

总结所有这些,您的.变换()必须期望MessagingException作为有效负载,并通过从该失败消息复制标头来生成输出消息。这样,消息将被发送到HTTP入站网关请求消息的回复通道。

 类似资料:
  • 我对Spring集成相对较新,但我的任务是实现一个tcp网关,该网关需要: 在套接字上侦听消息 在我的Spring集成经验中,消息流不是双向的。我只将路由器配置为侦听、处理消息和输出到队列/主题。但是,在这种情况下,我需要接受消息并返回响应,同时将某些消息转发到队列。建议? 这是到目前为止我的集成xml。 如何将handleInput的输出转发到队列,同时从网关返回一些响应? 编辑:在与Gary进

  • 我正在开发一个Spring应用程序,它每分钟将接收大约500条xml消息。下面的xml配置只允许每分钟处理大约60条消息,其余消息存储在队列中(持久化在DB中),并以每分钟60条消息的速率检索。 尝试从多个来源阅读文档,但仍然不清楚轮询器和任务执行器的角色。我对当前每分钟处理60条消息的理解是因为轮询器配置中的“固定延迟”值设置为10(因此它将在1分钟内轮询6次),“每轮询最大消息数”设置为10,

  • 这里有三个子流,其中一个子流是HTTP出站调用。我希望HTTP调用应该尝试获得响应,直到提到的时间。如果超时,那么主流应该中断,并以Json格式显示错误消息作为输出。 下面是代码-

  • 登录后,它生成了一个哈希值,但仍然给出错误“Some problem currened!try tain”。

  • 我已经使用最新的可用版本建立了一个新的Spring Boot Spring Integration Spring Integration Java DSL项目。项目构建正常,但当我运行应用程序时,我得到: 当前使用的依赖项如下: 错误可能是由于jar版本的错误组合吗?我不确定如何调试此错误。

  • 我正在开发一个使用Spring Integration 5.0.1和Spring Boot 2.0.0的应用程序。RC1 目前,应用程序响应并运行一些可能需要一段时间才能完成的初始化代码。这不使用任何Spring集成组件。 我还有一些非常基本的集成流,使用JavaDSL编写,并在配置中声明为bean。 有什么方法可以推迟流何时开始消耗消息吗?我希望能够在初始化完成时手动启动它们。 配置似乎是解决方