Joh*_*ray 2 rest spring soap apache-camel
我需要在两个外部服务之间构建REST-SOAP Gateaway第一个Web服务发出SOAP请求并等待SOAP响应.第二个服务(我的,用Play Framework 1.2.4编写)只能使用RESTful方法.出于多种原因,我不想将SOAP相关的东西与第二个服务集成.所以我需要一些第三项服务来在他们之间采取行动
我已经研究过使用带有Apache Camel的Spring网络应用程序,但仍然无法全面了解,因为Camel有很多模块.CXF-RS和SOAP组件看起来很容易,但我无法弄清楚如何使用它们实现代理.
首先,如何使Camel监听指定的SOAP请求.然后,如何将RESTful服务的响应路由回呼叫服务.
我试图只使用弹簧配置.
Camel CXF将为您的肥皂终点提供技巧.
首先,您需要编写端点
@WebService
public interface QuoteInEndpoint {
@WebResult(name = "quote")
public Quote price(@WebParam(name = "symbol") String symbol);
}
Run Code Online (Sandbox Code Playgroud)
然后你需要声明它
<cxf:cxfEndpoint id="quoteIn" address="http://localhost:9002" serviceClass="my.package.QuoteInEndpoint" />
Run Code Online (Sandbox Code Playgroud)
然后,您可以从此端点构建路由
from("cxf:bean:quoteIn")//
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
//do whatever you need to get your object and transform it for your rest service
}
})//
.to("http://myplayframeworkserver/myservice")//
Run Code Online (Sandbox Code Playgroud)
Camel将启动路由,在localhost:9002中显示您的soap服务的wsdl,并且每个soap请求都将发送到您的其余服务器.过程方法可用于将对象整形为正确的休息服务格式(我假设json).您可以使用另一个Camel组件来完成工作(如果您需要json ,可以使用Camel JSON),而不是使用处理器
| 归档时间: |
|
| 查看次数: |
8912 次 |
| 最近记录: |