gpt4 book ai didi

apache-camel - 为 Camel 配置全局错误处理程序?

转载 作者:行者123 更新时间:2023-12-04 14:15:05 24 4
gpt4 key购买 nike

我正在尝试为我的 Camel 上下文中的所有路由抛出的所有异常配置一个异常处理程序。我的方法如下,没有运气:

  • 实例化默认的 Camel 上下文
  • 从 spring 上下文中检索 RouteDefinition 列表
  • 通过调用 ctx.addRouteDefinitions()
  • 将这些定义添加到 Camel 上下文中
  • 从 java dsl 定义的 RotueBuilder 添加我的异常处理程序路由 (ctx.addRoutes(new MyErrorHandlerRouteBuilder())
  • 启动 Camel 上下文

  • 在这一点上,在 spring 中定义的路由中抛出的异常由 DefaultErrorHandler 处理,而不是我试图定义的那个。这是我的错误处理路由定义的样子
    public class MyErrorHandlerRouteBuilder extends RouteBuilder {
    @Override
    public void configure() throws Exception {
    onException(Exception.class)
    .routeId("errorHandlerRoute")
    .handled(true)
    .process(new Processor() {

    @Override
    public void process(Exchange exchange) throws Exception {
    Throwable caused = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Throwable.class);
    // do some custom processing of the exception
    }
    })
    .stop();
    }

    我还能尝试什么,或者我哪里出错了?

    最佳答案

    创建一个抽象基类并在 configure 方法中定义全局错误处理程序。然后在你的路由类中扩展这个基类,并在它们的配置方法中首先调用 super.configure()。

    关于apache-camel - 为 Camel 配置全局错误处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14884844/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com