3

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

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

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

我尝试使用

camelContext.stopRoute(TestRoute.ROUTEID);

将旧端点更改为新端点

camelContext.startRoute(TestRoute.ROUTEID);

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

谢谢你的帮助

4

2 回答 2

7

你需要

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

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

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

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

但是可能有一些组件不能做到这一点。

于 2013-03-06T18:04:02.633 回答
1

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

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

from("direct:a")
     .recipientList(header("foo"));
于 2013-03-06T16:47:19.180 回答