Я хочу контролировать, когда мой маршрут запускается с использованием RoutePolicy
. Поэтому я определил его autoStartup = ложьКак начать маршрут верблюда с autoStartup = false
<camel:route id="myRoute" routePolicyRef="myRoutePolicy" autoStartup="false">
<!-- details omitted -->
</camel:route>
Чтобы начать маршрут, я попробовал:
public class MyRoutePolicy implements RoutePolicy {
// Does NOT work!
@Override
public void onInit(Route route) {
if(shouldStartRoute(route)) {
camelContext.startRoute(route.getId());
}
}
// More stuff omitted
}
К сожалению, ничего не происходит. Javadoc для CamelContext.startRoute(String)
может объяснить, почему:
Запускает данный маршрут, если он был ранее остановлен
Как начать маршрут, который ранее не был остановлен?
Я использую Camel 2.8.0, и обновление не является вариантом.
Я могу начать маршрут с помощью консоли JMX, но я не хочу зависеть от JMX.
Вы изучали [правила маршрута] (https://camel.apache.org/routepolicy.html)? Однако с Camel 2.8 вы получаете ограниченную поддержку. Возможно, он по-прежнему работает на вас. – Ralf
@ Ralf Да, я называю 'camelContext.startRoute (« myRoute »);' из политики маршрута в попытке начать маршрут –