【问题标题】:How to get to RouteDefinition in Camel 3.x (migration from 2.x to 3.x)如何在 Camel 3.x 中到达 RouteDefinition(从 2.x 迁移到 3.x)
【发布时间】:2021-11-29 09:54:04
【问题描述】:

我将 camel-parent 从 2.x 升级到 3.x。我在代码中有这个用法:

 exchange.getContext()
                .getRoute(exchange.getFromRouteId())
                .getRouteContext()
                .getRoute()
                .stop();
    

现在

 exchange.getContext()
                .getRoute(exchange.getFromRouteId())
                .getRouteContext()

为我们提供了一个无法访问org.apache.camel.model.RouteDefinition 的界面,而是获得了 org.apache.camel.NamedNode 我无法在其上执行 stop 方法。你能告诉我如何获得这个 RouteDefinition 以便我可以在上面执行stop 方法吗?

【问题讨论】:

    标签: java spring-boot apache-camel migration


    【解决方案1】:

    新的方法(在 Camel 3 中)是使用RouteController,例如:

    camelContext.getRouteController().suspendRoute("my-route-id");

    【讨论】:

    • 那我不应该使用stopRoute吗?
    • 这只是为了说明RouteController 上可用的服务(例如suspendRoute)。但是,是的,在您的特定情况下,您确实可以调用 stopRoute 。您可以使用 startRoute/stopRoute 或 suspendRoute/resumeRoute
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    相关资源
    最近更新 更多