實現一個WebService需要了解它的幾個重要點(SOAP,WSDL,UDDI)
一、重要點
SOAP
簡單來說: SOAP = HTTP + XML 就是一個簡單的數據交換協議
客戶端通過發送一個HTTP請求,這個HTTP請求裏面包含一個XML,服務端接收到請求後解析這個XML然後來調用對應的服務和方法,返回對應的數據。WSDL
簡單來說:WSDL就是告訴調用者應該怎麼填寫SOAP當中的XML文件裏面的內容。服務端具體提供了什麼服務,該怎麼調用這個服務,該傳遞什麼類型的參數。會返回什麼類型的數據等等。UDDI
簡單來說:UDDI是用於描述、發現、集成Web Service的技術。
二、WebService相關框架
- JWS:JAVA語言對WebService服務的一種實現,可以用於開發以及發佈webservice服務。
- Axis2:一個重量級的WebService框架,功能強大。
- CXF:一個基於XFire改造後的WebService框架,高性能,開發比較方便。
三、WebService接口和http接口的區別
WebService相對Http (post/get)
- 1.接口中實現的方法和要求參數一目瞭然
- 2.不用擔心大小寫問題
- 3.不用擔心中文urlencode問題
- 4.代碼中不用多次聲明認證(賬號,密碼)參數
- 5.傳遞參數可以爲數組,對象等…
- 6.由於要解析XML,效率相對較慢。
- 7.在對參數要求不嚴謹的情況下完全可以由HTTP請求代替。
四、WSDL結構
WSDL(Web Services Description Language), web服務描述語言,他是webservice服務端使用說明書,說明服務端接口、方法、參數和返回值,WSDL是隨服務發佈成功,自動生成,無需編寫。
1、文檔結構
- Service:相關端口的集合,包括其關聯的接口、操作、消息等。
- Binding:特定端口類型的具體協議和數據格式規範
- portType: 服務端點,描述 web service可被執行的操作方法,以及相關的消息,通過binding指向portType
- message: 定義一個操作(方法)的數據參數
- types: 定義 web service 使用的全部數據類型
2、閱讀方式
WSDL文檔應該從下往上閱讀。
- 1.先看service標籤,看相應port的binding屬性,然後通過值查找上面的binding標籤。
- 2.通過binding標籤可以獲得具體協議等信息,然後查看binding的type屬性
- 3.通過binding的type屬性,查找對應的portType,可以獲得可操作的方法和參數、返回值等。
- 4.通過portType下的operation標籤的message屬性,可以向上查找message獲取具體的數據參數信息。
五、參考資料
1、光滑的禿頭的博客https://blog.csdn.net/ycf921244819/article/details/99548243