2015-11-17 228 views
5

我正在处理此项目,其中客户端仅支持用于使用Web服务的SOAP WSDL,因为它支持传入调用的休息。我需要将此工具与另一个完全安静的工具(具有WADL)集成。肥皂客户端可以使用宁静的Web服务吗?如果是,你会建议哪一种工具?Soap客户端使用Rest Web服务

+0

你的问题对我来说并不完全清楚。你用“客户”这个词来表示与“这个工具”和“肥皂客户”相同的东西吗?如果您的答案是肯定的,那么我是否理解正确,该工具支持调用基于SOAP的Web服务,而您的问题是如何让它调用WADL中定义的Web服务?请注意,REST只是一种架构风格,基于SOAP的Web服务也可以是RESTful。 –

+0

是的,你可以。使用jax-ws,你可以使用'Provider'和'Dispatch' API来完成。你甚至可以使用'HttpURLConnection'来调用一个REST服务。毕竟,调用REST端点只是对某个url进行HTTP请求。这里有一些例子:http://www.java2s.com/Code/Java/Web-Services-SOA/RESTbasedWebServicesusingHTTPbindingandJAXWSProviderDispatch.htm,http://www.edureka.co/blog/how-to-write-restful- web-services-with-jax-ws /,https://www.subbu.org/blog/2006/08/jax-ws-for-restful-web-services –

回答

2

SOAP定义了用于基于XML的消息交换的标准通信协议(规则集)规范。 SOAP使用不同的传输协议,例如HTTP和SMTP。标准协议HTTP使SOAP模型更容易跨越防火墙和代理进行隧道传输,而无需对SOAP协议进行任何修改。

REST描述了一组体系结构原理,通过它可以通过标准化接口(如HTTP)传输数据。 REST不包含其他消息传递层,并专注于创建无状态服务的设计规则。客户端可以使用唯一的URI访问资源,并返回资源的表示形式。对于每个新的资源表示,客户端被称为传输状态。在使用HTTP协议访问RESTful资源时,资源的URL用作资源标识符,GET,PUT,DELETE,POST和HEAD是要在该资源上执行的标准HTTP操作。

它可以通过jQuery完成。

的语言识别jQuery的样本:

$.post('https://services.open.xerox.com/RestOp/LanguageIdentifier/GetLanguageForString', 
{'document' : 'This is a sample'}, function (data) { 
    var res = 'Not found'; 
    if (data != null) { 
    res = data; 
    } 
}); 

延伸阅读:https://spring.io/guides/gs/consuming-rest-jquery/

2

不,这是不可能的肥皂客户端使用RESTful服务。他们之间没有任何互操作性。

即使你能做到这一点,你不应该。使用工具库,并为您的休息服务创建一个休息客户端。