2015-11-17 281 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服務。他們之間沒有任何互操作性。

即使你能做到這一點,你不應該。使用工具庫,併爲您的休息服務創建一個休息客戶端。