无法添加骆驼路线

时间:2015-02-10 09:46:18

标签: java spring apache-camel

一点背景:

我将Spring和Camel与Java 8一起使用。

public static void main(String[] args) throws Exception {

    AbstractApplicationContext _context = new ClassPathXmlApplicationContext(
            "application-context.xml");
    _context.registerShutdownHook();

    MessageRoute _messageRoute = (MessageRoute) _context.getBean("messageRoute");
    SpringCamelContext _camelContext = _context.getBean(SpringCamelContext.class);
    _messageRoute.setContext(_camelContext);
    _camelContext.addRoutes(_messageRoute);

    Object lock = new Object();
    synchronized (lock) {
        lock.wait();
    }

    ((ClassPathXmlApplicationContext) _context).close();

}

[main] DEBUG o.s.c.e.PropertySourcesPropertyResolver - 搜索键' spring.liveBeansView.mbeanDomain'在[systemProperties]中 [main] DEBUG o.s.c.e.PropertySourcesPropertyResolver - 搜索键' spring.liveBeansView.mbeanDomain'在[systemEnvironment]中 [main] DEBUG o.s.c.e.PropertySourcesPropertyResolver - 找不到键' spring.liveBeansView.mbeanDomain'在任何财产来源。返回[null] [main] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 返回单例bean的缓存实例' messageRoute' [main] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 返回单例bean的缓存实例' org.apache.camel.spring.SpringCamelContext#0' [main] DEBUG o.a.camel.spring.SpringCamelContext - 从构建器添加路由:路由:[] [main] DEBUG o.a.camel.spring.SpringCamelContext - 从构建器添加路由:路由:[]

  

我也尝试过使用DefaultCamelContext,但问题是它没有添加路由类。 MessageRoute类是一个扩展RouteBuilder的简单类。我的观察告诉我包含以下内容的行:_context.getBean(" messageRoute")可能有问题,因为它没有真正将任何路由传递给RouteBuilder引用。

debugger view

2 个答案:

答案 0 :(得分:1)

别介意我修好了! Camel没有添加位于spring容器内的Route类的实例,因为在configure方法中,需要一个实际的路径,从()。到()。

非常有趣但是它没有抛出任何错误甚至拒绝将ApplicationContext bean添加到路由中。

答案 1 :(得分:0)

要在XML中添加Java路由,只需在<routeBuilder ref="myBeanName"/>

中使用<camelContext>即可

请参阅使用Java代码

部分中的Camel文档:http://camel.apache.org/spring.html