我在spring beans.xml中定义了一个camel上下文。
现在我想以编程方式在camel上下文中调用路由。我怎么做。我想以编程方式执行此操作,因为我希望我的多个节点之一运行此下载。我不希望这个驼峰的所有节点都运行下载。我打算把它作为一份工作或使用动物园管理员,但不想改变我们编写骆驼路线的方式。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">
<!-- Camel context which holds the route definitions -->
<camelContext id="camelpriceroutebean" errorHandlerRef="errorHandler"
xmlns="http://camel.apache.org/schema/spring">
<route id="download-from-ftp" autoStartup="true" startupOrder="1">
现在我尝试使用以下代码
ApplicationContext context = new ClassPathXmlApplicationContext("/META-INF/springbean.xml");
CamelContext camel = (CamelContext) context.getBean("camelpriceroutebean");
List<Route> routes = camel.getRoutes();
但是springbean.xml正在抛出expcetion。有没有其他方法来处理这个问题。 ?
答案 0 :(得分:0)
请参阅此常见问题解答:http://camel.apache.org/running-camel-standalone.html和此http://camel.apache.org/running-camel-standalone-and-have-it-keep-running.html。您需要启动Spring / Camel并保持JVM运行并允许路由从FTP服务器运行和下载。这是自动发生的,您不会调用路径使其在从FTP端点消耗时运行。
我建议稍微研究一下Camel的工作方式,以便更好地理解它。例如,有一个FTP示例,其他位于:https://github.com/apache/camel/tree/master/examples#examples