WebService顧名思義就是web服務,web服務主要有兩種,一種是基於soap類型的服務,一種是基於rest類型的服務,
其中soap類型的服務有兩種版本,一種是soap1.1版本,一種是soap1.2版本,soap服務類型的數據是xml數據格式的,
rest服務的數據類型是json格式的
wsdl查看是從下往上的
根據wsdl寫客戶端
HelloWorldService hws = new HelloWorldService; //service的name
HelloWorld hw = hws.getHelloWorld()//service下port的name
String s1 = hw.sayHelloWorldFrom("lhw");
1.wsdl:service
<wsdl:service name="HelloWorldService"> <wsdl:port binding="impl:HelloWorldSoapBinding" name="HelloWorld"> <wsdlsoap:address location="http://localhost:8080//services/example/HelloWorld"/> </wsdl:port> </wsdl:service>
wsdl:service 是表明這個服務的名稱:HelloWorldService 服務的地址:http://localhost:8080//services/example/HelloWorld
service的binding綁定了 2.wsdl:binding 的name
2.wsdl:binding
簡單代碼說明:
<wsdl:binding name="HelloWorldSoapBinding" type="impl:HelloWorld"> </wsdl:binding>
詳細代碼:

<wsdl:binding name="HelloWorldSoapBinding" type="impl:HelloWorld"> <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="sayHelloToYou"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="sayHelloToYouRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="sayHelloToYouResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="sayHelloWorldFrom"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="sayHelloWorldFromRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="sayHelloWorldFromResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding>
binding的type 是3wsdl:portType的的name
3.wsdl:portType
<wsdl:portType name="HelloWorld"> <wsdl:operation name="sayHelloToYou" parameterOrder="name sex address"> <wsdl:input message="impl:sayHelloToYouRequest" name="sayHelloToYouRequest"/> <wsdl:output message="impl:sayHelloToYouResponse" name="sayHelloToYouResponse"/> </wsdl:operation> <wsdl:operation name="sayHelloWorldFrom" parameterOrder="from"> <wsdl:input message="impl:sayHelloWorldFromRequest" name="sayHelloWorldFromRequest"/> <wsdl:output message="impl:sayHelloWorldFromResponse" name="sayHelloWorldFromResponse"/> </wsdl:operation> </wsdl:portType>
wsdl:operation的name即代表着是接口名稱
parameterOrder代表着參數名稱
四個message對應wsdl:message的name
4.wsdl:message
<wsdl:message name="sayHelloWorldFromResponse"> <wsdl:part element="impl:sayHelloWorldFromReturn" name="sayHelloWorldFromReturn"/> </wsdl:message> <wsdl:message name="sayHelloToYouResponse"> <wsdl:part element="impl:sayHelloToYouReturn" name="sayHelloToYouReturn"/> </wsdl:message> <wsdl:message name="sayHelloWorldFromRequest"> <wsdl:part element="impl:from" name="from"/> </wsdl:message> <wsdl:message name="sayHelloToYouRequest"> <wsdl:part element="impl:name" name="name"/> <wsdl:part element="impl:sex" name="sex"/> <wsdl:part element="impl:address" name="address"/> </wsdl:message>
wsdl:part對應wsdl:types的name
5.wsdl:types(在服務正式發布后的wsdl中,無具體的element節點)
<wsdl:types> <schema elementFormDefault="qualified" targetNamespace="http://example" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="name" type="xsd:string"/> <element name="sex" type="xsd:string"/> <element name="address" type="xsd:string"/> <element name="sayHelloToYouReturn" type="xsd:string"/> <element name="from" type="xsd:string"/> <element name="sayHelloWorldFromReturn" type="xsd:string"/> </schema> </wsdl:types>
最終在每個element的type處 就可以知道每個參數和返回值的類型