我正在使用springCamelContext的camel-spring jar。当我启动驼峰上下文时,它运行5分钟(默认时间)。我可以让我的线程睡眠一段时间,即
object Driver {
def main(args: Array[String]) {
...
}
object GroupConcat extends UserDefinedAggregateFunction {
...
}
}
但我想要的是我的camelContext运行FOREVER,因为这个应用程序将被部署,它将监听来自KAFKA服务器的消息。我知道有一个班级
try {
camelContext.start();
Thread.sleep(50 * 60 * 1000);
camelContext.stop();
} catch (Exception e) {
e.printStackTrace();
}
但我不知道如何使用springCamelContext配置它或不确定是否有其他方法。感谢
更新:即使我删除了camelContext.stop(),上下文会在一段时间后停止,我会得到以下日志:
org.apache.camel.spring.Main
答案 0 :(得分:5)
请参阅此示例,了解如何使Camel保持运行:http://camel.apache.org/running-camel-standalone-and-have-it-keep-running.html
答案 1 :(得分:1)
这是一个永久运行的最小示例,它仅将文件从一个文件夹复制到另一个文件夹:
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.main.Main;
public class FileWriteRoute {
public static void main(String[] args) throws Exception {
Main main = new Main();
main.addRouteBuilder(new RouteBuilder() {
public void configure() {
from("file://D:/dev/playground/camel-activemq/src/data")
.to("file://D:/dev/playground/camel-activemq/src/data_out");
}
});
main.run();
}
}
答案 2 :(得分:0)
如果您在类中定义了Route,请尝试:
public static void main(String[] args) throws Exception {
Main main = new Main();
CamelContext context = main.getOrCreateCamelContext();
try {
context.addRoutes(new YOURROUTECLASS());
context.start();
main.run();
}
catch (Exception e){
enter code here
}
}