【问题标题】:dynamic change endpoint camel动态变化端点骆驼
【发布时间】:2013-03-06 13:34:17
【问题描述】:

是否可以以动态方式从端点更改? 例如我想改变

for(endpointFirst).routeId(ROUTEID).to(finishEndpoint);

for(endpointSecond).routeId(ROUTEID).to(finishEndpoint);

我尝试使用

camelContext.stopRoute(TestRoute.ROUTEID);

将旧端点更改为新端点

camelContext.startRoute(TestRoute.ROUTEID);

但我的努力无法正常工作。

感谢您的帮助

【问题讨论】:

    标签: dynamic apache-camel endpoint


    【解决方案1】:

    你需要

    1. 停止路线
    2. 删除路线
    3. 更改端点
    4. 添加路线
    5. 开始路线

    这允许您将 from 端点更改为您想要的任何东西(例如其他东西)

    某些组件/端点确实允许更改选项并在运行时更新这些选项。例如,JMS 端点允许这样做,因此您可以

    1. 停止路线
    2. 更改 jms 端点上的选项
    3. 开始路线

    但可能有些组件无法做到这一点。

    【讨论】:

    • 你能指出我在哪里可以找到这个例子吗?谢谢!
    【解决方案2】:

    要更改 from 端点,您可以通过上下文 API 动态添加/删除路由或按照克劳斯的建议更改路由

    要更改目标端点,请使用recipient list EIP 和表达式根据消息头、变量、方法等动态确定端点...

    from("direct:a")
         .recipientList(header("foo"));
    

    【讨论】:

    • 我知道模式收件人列表,但我想更改第一个端点 - from ,以防我无法使用收件人列表。
    猜你喜欢
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    相关资源
    最近更新 更多