Копия верблюда Apache между каталогами
Я новичок в Apache Camel и весенний ботинок. Я пишу приложение, в котором мне нужно перенести файл из папки в очередь jms. Но перед этим я пытаюсь перенести файл из одной папки в другую, чего не происходит. При запуске приложения в качестве приложения весенней загрузки создается входная папка. Если вставить файл в эту папку, папка назначения не будет сформирована, а операторы журнала также не появятся. Вот как я добавил маршрут:
@SpringBootApplication
public class CamelApplication extends FatJarRouter {
public static void main(String ... args) {
SpringApplication.run(CamelApplication.class, args);
}
@Override
public void configure() throws Exception {
from("file:input?noop=true")
.log("Read from the input file")
.to("file:destination")
.log("Written to output file");
}
}
2 ответа
Это должно работать, и это работает для меня, возможно, вы не обновили свое рабочее пространство в IDE, если вы так отслеживаете прогресс.
РЕДАКТИРОВАТЬ
Теперь я вижу, что не так с вашей конфигурацией - вы, вероятно, не имеете spring-boot-starter-web на вашем пути к классам, поэтому ваш основной метод не блокируется и мгновенно завершает работу.
Вы должны удалить основной метод из CamelApplication
и добавьте эту запись в application.properties
:
spring.main.sources = com.example.CamelApplication
Или вы можете изменить основной метод для запуска CamelSpringBootApplicationController
:
@SpringBootApplication
public class CamelApplication extends FatJarRouter {
public static void main(String... args) {
ApplicationContext applicationContext = SpringApplication.run(DemoApplication.class, args);
CamelSpringBootApplicationController applicationController =
applicationContext.getBean(CamelSpringBootApplicationController.class);
applicationController.run();
}
@Override
public void configure() throws Exception {
from("file:input?noop=true")
.log("Read from the input file")
.to("file:destination")
.log("Written to output file");
}
}
Кроме того, вы можете добавить это в ваш pom.xml, чтобы заставить встроенный Tomcat запускать и блокировать ваш основной метод:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
добавьте в application.properties, чтобы JVM продолжала работать
camel.springboot.main-run-controller = true