webservice快速入門-SOAP和WSDL(三)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
什麼是SOAP?SOAP:Simple Object Access Protocol
以下是百度的結果:
SOAP:簡單物件訪問協議,簡單物件訪問協議(SOAP)是一種輕量的、簡單的、基於 XML 的協議,它被設計成在 WEB 上交換結構化的和固化的資訊。 SOAP 可以和現存的許多因特網協議和格式結合使用,包括超文字傳輸協議( HTTP),簡單郵件傳輸協議(SMTP),多用途網際郵件擴充協議(MIME)。它還支援從訊息系統到遠端過程呼叫(RPC)等大量的應用程式。
說白了,它就是一種基於XML傳輸資料的協議,為什麼基於XML,因為這樣可以確保不同平臺,語言的通訊,也就是經常聽到的導構平臺之前的通訊。
我們常見的json,xml其實都可以理解為是soap的實現。
我們來看一下之前的WSDL檔案,訪問:http://localhost:7777/tudou?wsdl如下:
This XML file does not appear to have any style information associated with it. The document tree is shown below.<!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. --><!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. --><definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://server.ws.platform.whaty.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://server.ws.platform.whaty.com/" name="MyServiceImplService"><types><xsd:schema><xsd:import namespace="http://server.ws.platform.whaty.com/" schemaLocation="http://localhost:7777/tudou?xsd=1"/></xsd:schema></types><message name="minus"><part name="parameters" element="tns:minus"/></message><message name="minusResponse"><part name="parameters" element="tns:minusResponse"/></message><message name="add"><part name="parameters" element="tns:add"/></message><message name="addResponse"><part name="parameters" element="tns:addResponse"/></message><portType name="IMyservice"><operation name="minus"><input message="tns:minus"/><output message="tns:minusResponse"/></operation><operation name="add"><input message="tns:add"/><output message="tns:addResponse"/></operation></portType><binding name="MyServiceImplPortBinding" type="tns:IMyservice"><soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/><operation name="minus"><soap:operation soapAction=""/><input><soap:body use="literal"/></input><output><soap:body use="literal"/></output></operation><operation name="add"><soap:operation soapAction=""/><input><soap:body use="literal"/></input><output><soap:body use="literal"/></output></operation></binding><service name="MyServiceImplService"><port name="MyServiceImplPort" binding="tns:MyServiceImplPortBinding"><soap:address location="http://localhost:7777/tudou"/></port></service></definitions>
我們把節點收起來看得更清楚點:
type:用來定義訪問的型別,一個型別對應我們服務端介面的一個方法,一個型別對應我們介面的一個返回值。我們可以看到上面的wsdl中有一個schemaLocation="http://localhost:7777/tudou?xsd=1"的玩意,我們直接在瀏覽器訪問一下它。
This XML file does not appear to have any style information associated with it. The document tree is shown below.<!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. --><xs:schema xmlns:tns="http://server.ws.platform.whaty.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0" targetNamespace="http://server.ws.platform.whaty.com/"><xs:element name="add" type="tns:add"/><xs:element name="addResponse" type="tns:addResponse"/><xs:element name="minus" type="tns:minus"/><xs:element name="minusResponse" type="tns:minusResponse"/><xs:complexType name="add"><xs:sequence><xs:element name="arg0" type="xs:int"/><xs:element name="arg1" type="xs:int"/></xs:sequence></xs:complexType><xs:complexType name="addResponse"><xs:sequence><xs:element name="return" type="xs:int"/></xs:sequence></xs:complexType><xs:complexType name="minus"><xs:sequence><xs:element name="arg0" type="xs:int"/><xs:element name="arg1" type="xs:int"/></xs:sequence></xs:complexType><xs:complexType name="minusResponse"><xs:sequence><xs:element name="return" type="xs:int"/></xs:sequence></xs:complexType></xs:schema>
看到complexType了沒有。如果你學了schema和dtd,你就應該知道這實際就是一種型別,下面是相應的子節點,可能還有一些約束。message:SOAP,也就是被封裝成一個物件的形式,實際上是以XML的形式展現的。裡面就是傳遞的我們的資料。
portType:就是對應我們的操作了。可以看到operation這個單詞吧。
binding:指定訊息所使用的格式。Literal就是不在SOAP訊息中表明資料型別,而通過其它方式獲知資料型別,這種方式是開發包相關的,沒有什麼標準;如<x>50</x>,單從SOAP訊息,你無法判斷50是數字還是字串。詳見:
http://blog.csdn.net/jackyrongvip/article/details/4608014
而它裡面的style="Document"中Document就是將SOAP請求和響應,或者說輸入輸出定義為XML元素,有嚴格的Schema("document" style means the messages in and out of the service are exactly as they are describe by the XML Schema in the WSDL).
service:指定服務釋出的名稱。
給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow
相關文章
- (文摘)徹底理解webservice SOAP WSDLWeb
- PHP呼叫webservice遇到 Soap WSDL Error - "failed to load external entityPHPWebErrorAI
- SOAP和WebService真是垃圾。Web
- Restful是什麼,SOAP Webservice和RESTful WebserviceRESTWeb
- web服務中soap、wsdl、uddi理解Web
- WebService Soap架構設計Web架構
- WebService—wsdl的簡單介紹(未完)Web
- CSS快速入門(三)CSS
- Webservice呼叫方式:axis,soap詳解Web
- cxf WebService設定wsdl中soapAction的值Web
- 前端快速入門(三)--CSS前端CSS
- Struts快速入門(三) (轉)
- ES6快速入門(三)
- TinyXML快速入門(一)(二)(三)XML
- PHP使用SOAP呼叫.net的WebService資料PHPWeb
- PHP5開發之WSDL,SOAP呼叫實現過程PHP
- Flutter基礎(三)Dart快速入門FlutterDart
- Flutter 基礎(三)Dart 快速入門FlutterDart
- camunda快速入門(三):設計表單和審批流程
- 使用cmd webservice wsdl網址生成客戶端程式碼Web客戶端
- 翻譯-使用Spring WebService生成SOAP Web ServiceSpringWeb
- WebService通過SOAP頭進行身份驗證Web
- java webservice開發入門之一JavaWeb
- java webservice開發入門之二JavaWeb
- netbeans透過wsdl生成webservice的UTF8問題BeanWeb
- Android程式使用SOAP呼叫遠端WebService服務AndroidWeb
- 快速排序快速入門排序
- Elasticsearch快速入門和環境搭建Elasticsearch
- YOLOv5快速入門和使用YOLO
- gRPC(三)基礎:gRPC快速入門RPC
- vue 快速入門的三個小例項Vue
- vue快速入門的三個小例項Vue
- CXF入門教程(1) -- 第一個webServiceWeb
- XML Web 服務技術解析:WSDL 與 SOAP 原理、應用案例一覽XMLWeb
- TCP/IP、HTTP、WEBSERVICE、SOAP、ICE都使用後才有感慨TCPHTTPWeb
- Flutter小白教程系列(三) --- Dart語言快速入門FlutterDart
- Gradle核心思想(三)Groovy快速入門指南Gradle
- 小豬的C語言快速入門系列(三)C語言