我是 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);
行中删除注释时,它可以正常工作。
谁能解释一下为什么需要在主线程上 hibernate ?
最佳答案
我认为CamelContext
作为一个单独的线程运行。如果您注释掉 Thread.sleep(50000);
,则 context
将 start()
并立即 stop()
导致它抛出错误?
如果是 Thread.sleep(50000);
上下文将 start()
并且当主线程处于 sleep 状态时,context
将完成将作业作为生成线程,然后 stop()
关于java - 为什么运行 Camel 示例需要在主线程上 hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21302322/