Мои маршруты верблюдов по умолчанию работают (Spring DSL) при запуске приложения. Это простой способ перемещения файлов (поскольку я новичок в Camel). Однако я хочу, чтобы маршрут запускался только в контроллере при запуске страницы JSP.
Например
@RequestMapping(value = "/", method = RequestMethod.GET)
public String index(Model model) throws Exception {
//In here I want to execute a route not when app loads
}
Я не использую Spring Boot, я исследовал эту тему, но ничего не нашел
я вдобавок попробовал
@Autowired
CamelContext camelContext;
но это не сработало. Буду признателен читателям за помощь.
Я понимаю, что мы можем использовать autoStartup=false в нашем xml, я использую это, и теперь файлы также не запускаются через наш контроллер. Новый код контроллера
@RequestMapping(value = "/", method = RequestMethod.GET)
public String index(Model model) throws Exception {
SpringCamelContext camelContext = (SpringCamelContext) applicationContext.getBean("camelContext");
try {
System.out.println("Hello");
camelContext.start();
Thread.sleep(1500);
} finally {
System.out.println("Hello2");
camelContext.stop();
}
return "index";
}
а в xml у меня есть
<camel:camelContext id="camelContext" trace="true" autoStartup="false">
<camel:route >
<camel:from uri="file:data/inbox?noop=true" />
<camel:to uri="file:data/outbox" />
</camel:route>
</camel:camelContext>
camelContext.setAutoStartup(true);
- person Eshan I.   schedule 19.10.2019