Java 如何将交换ID和原始路由ID传递给bean?

Java 如何将交换ID和原始路由ID传递给bean?,java,apache-camel,Java,Apache Camel,Exchange接口具有getExchangeId()方法,该方法返回Exchange的ID。当从路由调用bean时,是否有方法将该值传递给bean的方法 同样的问题是关于发起交换的路由的ID。此值由Exchange接口的getFromRouteId()方法返回 我知道我可以将Exchange对象完全传递给bean。但在我的例子中,不希望将bean绑定到Camel API。您可以使用@Simple注释bean参数绑定 public void foo(@Simple("exchangeId"

Exchange
接口具有
getExchangeId()
方法,该方法返回Exchange的ID。当从路由调用bean时,是否有方法将该值传递给bean的方法

同样的问题是关于发起交换的路由的ID。此值由
Exchange
接口的
getFromRouteId()
方法返回


我知道我可以将
Exchange
对象完全传递给bean。但在我的例子中,不希望将bean绑定到Camel API。

您可以使用
@Simple
注释bean参数绑定

   public void foo(@Simple("exchangeId") String id, 
                   @Simple("routeId") String routeId, 
                   Object body) { 
     ...
   }
一些链接


使用Camel 3.0.0,此解决方案似乎不起作用。下面的注释确实有效:
@Simple(${exchangeId}”)
请参阅迁移指南,注释已移动,您还应该使用
${exchangeId}
引用该函数。上面使用的是不推荐使用的旧语法,即使在2.x上也是如此。