首页 文章

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

提问于
浏览
0

我正在尝试使用收件人列表EIP在运行时根据数据库中的配置条目动态生成使用者 endpoints URI(http://camel.apache.org/how-to-use-a-dynamic-uri-in-to.html) . 我想 Build 一些可以一般处理多条路线的东西 .

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

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

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

1 回答

  • 1

    Exchange接口具有getFromEndpoint()方法,该方法返回 endpoints . Endpoint接口具有getEndpointUri()方法,该方法返回String . 也许's what you need? If that'不够,您可以在某个时刻设置 Headers 值,然后在您的路线中稍后检索它们 .

相关问题