2013-09-26 69 views
2

Apache Camel的新增功能,請讓我知道我們如何部署與駱駝戰爭,自動激活routeBulder?Apache Camel - 使用RouteBuilder部署戰爭應用程序

我已經在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它不處理什麼?

請讓我知道部署與駱駝的Web應用程序的正確方法(有沒有任何示例應用程序),我們如何解決上述問題?

PS。我能夠將其作爲獨立應用程序執行。然而,我想要實現的是從獨立應用程序連接到在戰爭中部署的activmq(「activemq://search.queue」),然後在戰爭中的路徑(SearchProcessRouteBuilder)自動激活,並且會處理隊列。然後它會將消息發送到另一個隊列「activemq://search.process.queue」。

這是可能的,如果Apache Camel可以實現這個目標?

+0

我認爲只有HTTP請求碼頭服務器監聽,所以對你的頂部活躍的mq隊列,你將不得不寫一個http層代碼,這也意味着servlets或其他東西。 – Sikorski

回答

3

你只需要以下添加到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

+0

當我做了更多的研究,發現你可以在沒有春天的情況下做同樣的事情。請參閱http://camel.apache.org/servlet-tomcat-no-spring-example.html。有效駱駝2.11 – kds

+0

嗨,今天,請讓我知道如何處理下面的情況。我將Pojo對象發送給戰爭中的隊列,然後結合我需要從隊列中讀取的戰爭並處理對象。一旦完成該對象設置爲另一個隊列(處理隊列)。處理這種情況的最佳方法是什麼? – kds

+0

如果您只需要在隊列和處理器之間發送數據,那麼最簡潔的方法是定義每個隊列的專用路由並僅在路由/隊列之間發送數據...不確定您要求的內容 –