【发布时间】:2020-10-26 02:45:40
【问题描述】:
该代码应该使用使用 Quartz 触发的 Apache Camel Route 将文件夹 1 中的内容复制到文件夹 2。当我运行程序时,我收到以下错误: 'org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为'springCamelApplication'的bean时出错:通过字段'camelContext'表示不满足的依赖关系'和'引起:org.springframework.beans.factory.BeanCreationException:创建名为'的bean时出错类路径资源[org/apache/camel/spring/boot/CamelAutoConfiguration.class]中定义的camelContext':合并bean定义的后处理失败;嵌套异常是 java.lang.IllegalStateException: Failed to introspect Class [org.apache.camel.impl.DefaultCamelContext] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@512ddf17]。'
public class SpringCamelApplication {
@Autowired
CamelContext camelContext;
public static void main(String[] args) {
SpringApplication.run(SpringCamelApplication.class, args);
}
@Bean
public FileRouteBuilder fileRouteBuilder() throws Exception {
FileRouteBuilder routeBuilder = new FileRouteBuilder();
camelContext.addRoutes(routeBuilder);
return routeBuilder;
}
}
public class FileRouteBuilder extends RouteBuilder {
@Override
public void configure() throws Exception {
from("file:R://folder1?recursive=true&noop=true&scheduler=quartz2&scheduler.cron=0 0/1 * 1/1 * ? *").process(new Processor() {
public void process(Exchange exchange) throws Exception {
System.out.println("transferring " + exchange.getIn().getBody());
}
}).to("file:R://folder2");
}
}
<dependencies>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot</artifactId>
<version>${camel.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring</artifactId>
<version>${camel.version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>${camel.version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-quartz2</artifactId>
<version>${camel.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
</dependency>
</dependencies>
【问题讨论】:
标签: java spring-boot apache-camel quartz-scheduler