1. 程式人生 > >WebService學習(一): 按照步驟看懂WebService的wsdl(或xml)檔案

WebService學習(一): 按照步驟看懂WebService的wsdl(或xml)檔案

前言:WebService的學習並不是專案中使用到的,只不過是今天一個朋友諮詢我關於WebService的一些知識,雖然之前對WebService有一些瞭解,但當時看了不少文章都無法理解,畢竟沒有實質性的事,只是單獨學習的話,效率會很慢,所以今天趁著朋友諮詢我,本著有問必答的態度,突然間就對WebService這個很感興趣了,把手頭的RabbitMQ的學習停了下來。。花了老半天學習的webservice_

瞭解wsdl檔案結構才能知道別人的服務端是什麼樣的介面資訊:

由於網上大把的參考資料,所以我也不再寫標籤的作用或者含義了,我參考的是這位大神的:
https://blog.csdn.net/u012228718/article/details/41245691


我在他的基礎上總結了以下幾點步驟,按照這個步驟就很容易理解他的文件資訊了:

  1. 找方法 :搜尋<wsdl:message,且其中name屬性的值沒有response結尾,如name="getCatsByUserResponse"不符合;其他的就是這個介面的方法
  2. 找引數:找<wsdl:message的子元素<wsdl:part,<wsdl:part中的name的屬性值就是在wsdl:types定義,去wsdl:types可以找到引數名和引數型別
  3. 找介面資訊:搜尋 <wsdl:portType 其中的name屬性就是介面的最終路徑,如<wsdl:portType name=“HelloWorld”>這個MyWebService和http://localhost:8080/helloWorld?wsdl=HelloWorld.wsdl最後的HelloWorld(第二個HelloWorld)一致
  4. 找傳入傳出資訊: <wsdl:portType的子元素<wsdl:operation 代表該介面的方法名(@WebMethod上註解的)。
    <wsdl:operation的子元素<wsdl:input 是表示輸入資訊,如 <wsdl:input message=“ns1:sayHi” name=“sayHi”>,這個message的屬性值sayHi又與<wsdl:message的這個對應起來。相同的,輸出資訊<wsdl:output message和輸入資訊是一樣的分析原理。

以上是看了別人的文章解釋後,自己總結的一些步驟。記錄下來以便下次參考或者給各位參考。
在看懂文件後,自己再寫個簡單的demo,然後再對接別人的webservice介面就算完成了本次webservice的學習啦