如何捕获表达式中的原始端点URI(收件人列表EIP)

时间:2014-07-11 18:59:29

标签: apache-camel

我正在尝试使用收件人列表EIP根据数据库中的配置条目(http://camel.apache.org/how-to-use-a-dynamic-uri-in-to.html)在运行时动态生成使用者端点URI。我有很多路由需要这样处理,所以我想构建一些可以处理多个路由的路径。

因此,我的想法是保留这些URI值的内存映射,这些URI值键入某种类型的标识信息(原始端点URI似乎是一个逻辑选择),如果/当更新数据库以保留路由时将更新同步,并防止每次交换都要去数据库。使用RouteBuilder,我正在使用收件人列表和Bean表达式设置路由。

from(endpointUri).recipientList(bean(MyBean.class, "getUri"));

我知道我可以使用Bean绑定为getUri方法捕获各种对象,例如交换,正文,标题(只要我知道名称)等。是否有可能以某种方式获取原始端点URI值,以便我可以将其用作获取正确的消费者端点的密钥?

1 个答案:

答案 0 :(得分:1)

Exchange接口具有getFromEndpoint()方法,该方法返回端点。 Endpoint接口具有getEndpointUri()方法,该方法返回String。或许那就是你需要的东西?如果这还不够,您可以在某个时刻设置标题值,然后在您的路线中稍后检索它们。