Apache Camel - 使用RouteBuilder部署war应用程序

时间:2013-09-26 08:22:08

标签: apache-camel

我是Apache Camel的新手,请告诉我如何使用自动激活routeBulder的camel部署战争?

我在applicationContext.xml

中进行了配置
    <camelContext xmlns="http://camel.apache.org/schema/spring" id="camel-3">
<routeBuilder ref="SearchProcessRoute" />

<bean id="SearchProcessRoute" class="camel.core.SearchProcessRouteBuilder" />

和路线构建器

public class SearchProcessRouteBuilder extends RouteBuilder {

@Override
public void configure() throws Exception {
    // TODO Auto-generated method stub
    from("activemq://search.queue")
    .log("Process from the queue")
    .bean("SearchProcessBean","ProcessData")
    .to("activemq://search.process.queue");
}}

当我向search.queue发送邮件时,它没有处理任何内容?

请告诉我使用驼峰部署网络应用的正确方法(是否有任何示例应用)以及我们如何解决上述问题?

PS。我能够将它作为一个独立的应用程序执行。但是,我想要实现的是从独立应用程序连接到在战争中部署的activmq(“activemq://search.queue”),然后战争中的路径(SearchProcessRouteBuilder)自动激活,会处理队列。然后它会将消息发送到另一个队列“activemq://search.process.queue”。

这是否可以与Apache Camel一起使用,如果我们如何实现这一目标呢?

1 个答案:

答案 0 :(得分:3)

你只需要在web.xml中添加以下内容来引导Spring / Camel上下文

<!-- location of spring xml files -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>

  <!-- the listener that kick-starts Spring -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

请参阅http://camel.apache.org/servlet-tomcat-example.html