Мои стандартные верблюжьи маршруты работают (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>