如何在apache camel 2.23.1版本的处理器交换对象中获取RouteId?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在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(),使用带有REST组件的Java DSL。还尝试在()组件中添加inbetween并同时设置id()和routeId(),仍然相同。

道路建筑:

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

test processor.Java

String routeId = exchange.getFromRouteId();
答案

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

以上是关于如何在apache camel 2.23.1版本的处理器交换对象中获取RouteId?的主要内容,如果未能解决你的问题,请参考以下文章

Apache Camel 和 Hystrix 命令名称

更正应用程序的类路径,使其包含一个兼容的 org.apache.camel.impl.converter.DefaultTypeContent 版本

Apache Camel - Spring 休息端点参考

如何在apache camel中附加速度文件内容

如何在apache camel DSL或camel Processor内部设置其他身份验证属性?

Apache Camel:如何存储变量以供以后使用