Запуск верблюжьих маршрутов в Spring MVC Controller - PullRequest
0 голосов
/ 19 октября 2019

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

1 Ответ

0 голосов
/ 19 октября 2019

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

camelContext.setAutoStartup(true);
...