我在使用Apache Camel Route配置Spring Application Events时遇到问题。我要构建的是一条Camel路由,该路由在某个目录中侦听文件并将结果作为我的默认Spring Application事件传递,并将其注入ApplicationContext中。我在互联网上找到的关于这种特殊设置的唯一信息是来自Camel的参考,它非常委婉地简洁明了:http://camel.apache.org/spring-event.html
因此,我编写了自定义类,扩展了Spring的Application Event
。然后,我编写了一个事件处理程序,并如下配置了我的路由:
@自动连线 私人CamelContext ctx;
...
@Bean
public RouteBuilder myRoute() throws Exception {
RouteBuilder route = new RouteBuilder() {
@Override
public void configure() throws Exception {
String myDirectoryPath = "file://my directory";
from(myDirectoryPath)
.delay(1100)
.convertBodyTo(String.class)
.to("spring-event://MySpringEvent");
}
};
ctx.addRoutes(route);
return route;
}
问题在于此特定设置不会发布任何Spring事件。 例如,如果我将结束路由替换为控制器映射的剩余网址,则设置有效。如果最后一条路由只是另一个目录路径,它也可以工作。因此,问题是:如何正确配置它以处理Spring事件?