2013-10-10 97 views
0

我目前正在開發一項將單獨運行的服務。我想讓多種格式的用戶都可以使用該服務。也就是說用戶可以通過駱駝 - 多種類型的消費者

  1. 製作一個REST調用
  2. 使Web服務
  3. 發佈到一個隊列
  4. 上傳文件

有沒有辦法訪問該服務,我可以使用駱駝提供這個。即駱駝可以站在所有這些之前,並提供路由?

回答

1

每個用戶界面(文件,JMS,HTTP,CXF,休息等)都需要有自己的路線,但後來每條路線都可以撥打的共同路線重用處理邏輯...

//first, define your interface routes to expose endpoint and convert data to common format as necessary 
from("jms:...")...to("direct:processRequest"); 
from("cxf:...")...to("direct:processRequest"); 
from("jetty:...")...to("direct:processRequest"); 
from("file:...")...to("direct:processRequest"); 

//now define your common processing route 
from("direct:processRequest")... 
+0

如果服務在本地運行,您可以從(「jms:...」)...到(「bean:...) ,從(「cxf:...」)...到(「bean:...)等。 – techuser

+0

嗨,謝謝你!我繼續使用Tomcat -ActiveMQ示例。現在,我有一個WEB應用程序運行,它監聽Camel路由的tomcat。我嘗試添加Spring REST控制器,但不知道如何路由它。我想在路由它的時候,調用spring rest URL。怎麼做?任何提示? – madhairsilence

1

是的,你可以用駱駝來實現這一點。有很多組件可以幫助您使用不同的協議公開服務。在你的情況下,你需要jetty組件來啓動一個http端點,進一步的CXF Bean將服務於REST請求。使用spring webservices來公開Web服務端點。查看Apache網站上提供的現成示例:camel-examples

+0

謝謝!但所有這些例子都只適用於一種類型。其中一個,ActiveMQ,Rest。並非全部在一起 – madhairsilence

+0

@madhairsilence您可以將它們合併在一起,並在您的應用程序中有多條路線 –