首页 > 解决方案 > 如何在 Apache Camel 版本 2.23.1 的处理器交换对象中获取 RouteId?

问题描述

我正在将我的应用程序从 spring boot 1.x 迁移到 spring boot 2.x。在此过程中,我将 Apache camel 从版本 2.20.0 升级到了 2.23.1。在以前的版本中,我可以从处理器中的 exchange.getFromRouteId() 读取路由名称,但在升级版本中,当我使用相同的方法时,它会自动生成 routeid,如 route117。

通过设置 id() 将 Java DSL 与 REST 组件一起使用。还尝试在设置了 id() 和 routeId() 的 from() 组件之间添加,仍然相同。

路线构建器:

rest("/app").get("/test").id("REST-TEST").to("direct:test").endRest();
 from("direct:test").routeId("TEST").id("TEST").process("TestProcessor");

测试处理器.java

String routeId = exchange.getFromRouteId();

标签: apache-camel

解决方案


它看起来像 Apache camel 2.23.x 中的一个问题,因为当我尝试使用 2.22.3 版本时,它可以工作并在处理器中提供正确的路由 ID。如果有人有 2.23.x 版本的解决方案,请告诉我。


推荐阅读