2013-10-10 81 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您可以将它们合并在一起,并在您的应用程序中有多条路线 –