天天看點

CXF-04: CXF 的本質,解析 WSDL 文檔

Web Service的三個技術基礎:

        1 . WSDL        Web Service Definition Language  - Web Service 定義語言;

        2 . SOAP         Simple Object Access Protocol - 簡單對象協定;

        3 . UDDI          (用到的不多)

一 、 XML 裡的兩個屬性:

         targetNamespace - 相當于Java語言裡的package

         xmlns                    - 相當于Java語言的import(導入命名空間,要寫的内容與要導入的檔案的 targetNamespace 相同)

                   xmlns比Java的import功能要強:

                         * Java代碼引入:import java.util.*;import java.sql.*;

                            程式代碼裡有Date屬性時,會報錯:對Date的引用不明确,java.sql中有類java.sql.Date和java.util中有類java.util.Date

                         * xmlns:ns1="http://ws.cxf.fjava.org/"

                            xmlns可以命名一個短名 ns1,短名可以改,"http://ws.cxf.fjava.org/"不能随便改,對應一個檔案

二 、 WSDL解析

        這裡解析的是CXF-01至03裡的程式,下面看圖識流程(先看接口,後看實作);

CXF-04: CXF 的本質,解析 WSDL 文檔
CXF-04: CXF 的本質,解析 WSDL 文檔
CXF-04: CXF 的本質,解析 WSDL 文檔

調用一次Web Service的本質:

         1.用戶端把調用方法參數,轉換XML文檔片段——該文檔片段必須符合WSDL定義的格式;

         2.通過網絡,把XML文檔片段傳給伺服器;

         3.伺服器接收到XML文檔片段;

         4.伺服器解析XML文檔片段,提前其中的資料,并把資料轉換為調用Web Service所需的參數值;

         5.伺服器執行方法

         6.把執行方法得到的傳回值再次轉換生成XML文檔片段(SOAP消息)——該文檔片段必須符合WSDL定義的格式。

         7.通過網絡,把XML文檔片段傳給用戶端;

         8.用戶端接收到XML文檔片段;

         9.用戶端解析XML文檔片段,提取其中的資料,并把資料轉換 調用Web Service的傳回結果。

從上面調用本質來看,要一個語言支援Web Service,唯一的要求是:該語言支援XML文檔解析、生成、支援網絡傳輸。

XML文檔片段是一個跨平台的交換格式,這也是CXF能夠跨平台的根本原因。

希望對你有幫助,祝你有一個好心情,加油!

若有錯誤、不全、可優化的點,歡迎糾正與補充;轉載請注明出處!