верблюд конечной точки динамического изменения

Возможно ли динамическое изменение с конечной точки? например я хочу изменить

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

to

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

Я пытаюсь использовать

camelContext.stopRoute(TestRoute.ROUTEID);

изменить старую конечную точку на новую конечную точку

camelContext.startRoute(TestRoute.ROUTEID);

но мои усилия не работают должным образом.

спасибо за любую помощь


person przodownikPracy    schedule 06.03.2013    source источник


Ответы (2)


Вам нужно будет

  1. остановить маршрут
  2. удалить маршрут
  3. изменить конечную точку
  4. добавить маршрут
  5. начать маршрут

Это позволяет вам изменить конечную точку from на все, что вы хотите (например, что-то еще)

Некоторые компоненты / конечные точки позволяют изменять параметры и обновлять их во время выполнения. Например, конечная точка JMS позволяет это, поэтому вы можете

  1. остановить маршрут
  2. изменить параметр в конечной точке jms
  3. начать маршрут

Но могут быть некоторые компоненты, которые не могут этого сделать.

person Claus Ibsen    schedule 06.03.2013
comment
Не могли бы вы указать, где я могу найти для этого пример? Спасибо! - person fuxes; 21.03.2018

чтобы изменить конечную точку from, вы можете просто динамически добавлять / удалять маршруты через контекстные API или изменять маршрут, как предложил Клаус

для изменения конечных точек назначения используйте список получателей EIP и выражение для динамического определения конечной точки на основе о заголовках сообщений, переменных, методах и т. д.

from("direct:a")
     .recipientList(header("foo"));
person Ben ODay    schedule 06.03.2013
comment
Я знаю шаблон recipientList, но я хочу изменить первую конечную точку - from, поэтому на случай, если я не могу использовать recipientList. - person przodownikPracy; 07.03.2013