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

spring integration dsl错误处理和继续

朱睿
2023-03-14

在我的spring integration应用程序中,我有一个异步网关方法,它指定了errorChannel。

On Error-我希望通过向ErrorChannel注册集成流来处理错误(我能够成功地做到这一点)。

一旦错误被处理和处理,我可能需要有条件地发送到另一个通道进行进一步处理,并在最后回复回网关。实现这一点的最佳方法是什么?

示例->

@MessagingGateway(errorChannel = "errorChannel")
public interface OrchestrationServicesGateway {
   @Gateway(requestChannel = "payment.input", replyChannel = 
   "payment.output")
   Future<JobData> processPayment(PaymentRequest request);
}

我如何做到这一点?

共有1个答案

徐昕
2023-03-14

我建议查看ExpressionEvaluatingRequestHandlerAdvise:https://docs.spring.io/spring-integration/docs/5.1.6.release/reference/html/#expression-advision。为所有单独的endpoint添加它,并在failurechannel中添加一些路由器逻辑,以确定进一步将补偿消息发送到哪里。

这样,您就不会有一个带有硬逻辑的错误处理点来确定哪里的消息失败了。

 类似资料:
  • 问题内容: 有没有办法清理此(IMO)恐怖代码? 具体来说,我在谈论错误处理。能够一次性处理所有错误将是很好的。 问题答案:

  • 您需要修复网页抛出的异常和在JavaScript中调试错误。 如果你能得到页面异常和JavaScript错误的细节,在实际工作中非常有用 。当页面抛出异常或脚本产生错误时,Console(控制台)面板会提供明确的可靠信息,以帮助您找到并解决问题。 在Console(控制台)面板中,您可以跟踪异常及跟踪导致异常的执行路径,显式地或隐式地捕获它们(或忽略它们),甚至可以设置错误处理程序来自动收集和处理

  • 我是Flink的新手,已经通过网站/示例/博客开始学习。我正在努力正确使用操作符。基本上我有两个问题 问题1:Flink是否支持声明性异常处理,我需要处理解析/验证/。。。错误? 我可以使用组织吗。阿帕奇。Flink。运行时。操作员。分类ExceptionHandler或类似的程序来处理错误 还是Rich/FlatMap功能是我的最佳选择?如果Rich/FlatMap是唯一的选项,那么是否有办法在

  • 通过对错误类型实现 Display 和 From,我们能够利用上绝大部分标准库错误处理工具。然而,我们遗漏了一个功能:轻松 Box 我们错误类型的能力。 标准库会自动通过 Form 将任意实现了 Error trait 的类型转换成 trait 对象 Box<Error> 的类型(原文:The std library automatically converts any type that imp

  • 错误处理(error handling)是处理可能发生失败情况的过程。例如读取一个文件失败,然后继续使用这个失效的输入显然是有问题的。错误处理允许我们以一种显式的方式来发现并处理这类错误,避免了其余代码发生潜在的问题。 有关错误处理的更多内容,可参考官方文档的错误处理的章节。

  • 处理一个 RESTful API 请求时, 如果有一个用户请求错误或服务器发生意外时, 你可以简单地抛出一个异常来通知用户出错了。 如果你能找出错误的原因 (例如,所请求的资源不存在),你应该 考虑抛出一个适当的HTTP状态代码的异常 (例如, yii\web\NotFoundHttpException意味着一个404 HTTP状态代码)。 Yii 将通过HTTP状态码和文本发送相应的响应。 它还