Запуск верблюжьих маршрутов в контроллере Spring MVC

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

person Eshan I.    schedule 19.10.2019    source источник
comment
Мне удалось заставить этот автозапуск работать, добавив это в код контроллера camelContext.setAutoStartup(true);   -  person Eshan I.    schedule 19.10.2019
comment
Итак, на ваш вопрос ответили? Если да, пожалуйста, добавьте свой комментарий в качестве ответа   -  person Simon Martinelli    schedule 19.10.2019


Ответы (1)


Мне удалось заставить этот автозапуск работать, добавив это в код контроллера

camelContext.setAutoStartup(true);
person Eshan I.    schedule 19.10.2019