webservice之WSDL

 調用WebService的本質原理

       一次WebService調用其實並非方法調用,而是發送SOAP消息,即xml文檔片斷。調用詳細過程以下:java

       一、客戶端將調用方法、參數,轉換生成xml文檔片斷(SOAP消息,input消息),該文檔片斷必須符合wsdl定義的格式。spring

       二、客戶端經過網絡將生成的xml文檔片斷傳給服務器。服務器

  三、服務器接受到客戶端發來的xml文檔片斷。網絡

  四、服務器解析xml文檔片斷,提取其中的數據,並將數據轉換爲調用WebService所須要的參數值。spa

  五、服務器執行方法。code

  六、服務器將方法的執行結果再次轉換爲xml文檔片斷(SOAP消息,output消息),該文檔片斷必須符合wsdl定義的格式。orm

  七、服務端經過網絡將執行結果的xml文檔片斷經過網絡發送給客戶端。xml

  八、客戶端接收到執行結果的xml文檔片斷。對象

  九、客戶端解析執行結果的xml文檔片斷,提取其中的數據,並將數據轉換爲調用WebService的返回值。接口

  從上面的調用本質上來看,方法的執行是在服務端,客戶端只作發送xml、接收xml、解析xml。因此,一種語言支持WebService惟一的要求就是:該語言支持xml文檔的解析、生成、網絡傳輸。爲何WebService離不開xml呢?WebService的三個基礎以下:

  一、WSDL:Web Service Definition Language——WebService定義語言

  二、SOAP:Simple Object Access Protocol——簡單對象訪問協議

  三、UDDI:Universal Description Discovery and Integration——通用描述、發現與集成服務,是一種目錄服務

  其中的WSDL與SOAP都爲xml,因此WebService離不開xml。




XML的兩個重要屬性
1.targetNamespace實現類的包路徑   targetNamespace="http://impl.ws.cn.xp.com/"
2.namespace <import namespace="http://ws.cn.xp.com/" location="http://127.0.0.1/XXX?wsdl=1"/>  
接口的包路徑,這裏的import實際上導入的是另外一個wsdl,包路徑不同因此用import的方式導入
3.xmlns:導入命名空間,spring的xml文件同理

xml片斷分析

http://127.0.0.1/XXX?wsdl下面的xml

http://127.0.0.1/XXX?wsdl=1路徑下的wsdl以下圖:


http://127.0.0.1/XXX?xsd=1路徑下的xml

相關文章
相關標籤/搜索