我是Camel的新手,我正在努力了解它是如何运作的。
我尝试了以下示例:
public class CamelMainTest {
public static void main(String args[]) throws Exception {
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
public void configure() {
from("file:d:\\inbox\\json?noop=true").to("file:d:\\outbox");
}
});
context.addRoutes(getFileRoute());
context.start();
// Thread.sleep(50000);
context.stop();
}
我正在将文件从一个位置复制到另一个位置,但它失败了。
当我从第Thread.sleep(50000);
行删除评论时,它可以正常工作。
任何人都可以解释为什么需要在主线程上睡觉吗?
答案 0 :(得分:2)
我认为CamelContext
作为一个单独的线程运行。如果您发表评论Thread.sleep(50000);
,那么context
会start()
并立即stop()
会导致错误投放?
如果Thread.sleep(50000);
上下文将start()
且主线程处于休眠状态,context
将完成作为生成线程的作业,然后stop()
答案 1 :(得分:1)
请参阅Camel网站上的此常见问题解答
它所指的链接,例如
并阅读CamelContext API的start方法的javadoc