2

私は 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 に送信すると、何も処理されませんか?

camel を使用して Web アプリをデプロイする適切な方法 (サンプル アプリケーションはありますか) と、上記の問題をどのように解決すればよいか教えてください。

PS。これをスタンドアロン アプリケーションとして実行できました。しかし、私が実現したいのは、スタンドアロンアプリケーションから、戦争中にデプロイされた activmq (「activemq://search.queue」) に接続し、戦争中にあるルート (SearchProcessRouteBuilder) が自動的にアクティブになり、それを実現することです。キューを処理します。次に、メッセージを別のキュー「activemq://search.process.queue」に送信します。

これは Apache Camel で可能ですか?

4

1 に答える 1

3

Spring/Camel コンテキストをブートストラップするには、web.xml に以下を追加するだけです。

<!-- 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を参照してください

于 2013-09-27T03:54:40.683 に答える