Apache-Camel中的文件监听器
问题描述:
我想要在Java中编程一个不断检查文件夹文件夹的Camel Route,然后将它们发送给处理器。Apache-Camel中的文件监听器
我不知道它的方式似乎很“脏”我说:
from("file:C:\\exampleSource").process(new Processor()
{
@Override
public void process(Exchange msg)
{
File file = msg.getIn().getBody(File.class);
Filecheck(file);
}
});
}
});
camelContext.start();
while (true)
{
// run
}
是否有实现一个更好的办法?
在此先感谢。
答
您还可以将你的文件处理专用类:
import java.io.File;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
public class FileProcessor implements Processor {
@Override
public void process(Exchange exchange) throws Exception {
File file = exchange.getIn().getBody(File.class);
processFile(file);
}
private void processFile(File file) {
//TODO process file
}
}
,然后用它如下:
from("file:C:\\exampleSource").process(new FileProcessor());
看看可用的骆驼maven原型:http://camel.apache.org/camel-maven-archetypes.html
其中c amel-archetype-java反映你的情况
答
这里是做一个也许更清洁的方式:
public static void main(String[] args) throws Exception {
Main camelMain = new Main();
camelMain.addRouteBuilder(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("file:C:\\xyz")
// do whatever
;
}
});
camelMain.run();
}
+0
这里的问题是一样的。我必须使用无限循环来保持路线运行。 – HAG 2015-02-09 16:35:56
这个应用程序将如何部署?威尔将作为独立的JAR运行,还是将其部署到像卡拉夫这样的运行时间? – Namphibian 2015-02-09 19:40:24