CamelContext在Beans.xml中定义。如何以编程方式实例化camelContext路由

时间:2017-06-13 18:11:39

标签: java spring apache-camel applicationcontext

我在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。有没有其他方法来处理这个问题。 ?

1 个答案:

答案 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