Axis1.4 通過WSDL生成Web Service客戶端

1. 下載Axis1.4 release包,解壓縮

2. 打開命令行窗口,cd到axis.jar所在的目錄

3. 編寫一個批處理generate.bat

@echo off

set cDate=%date:~2,2%%date:~5,2%%date:~8,2%

set cTime=%time:~0,2%%time:~3,2%%time:~6,2%

java -cp activation.jar;axis.jar;axis-ant.jar;commons-discovery-0.2.jar;commons-logging-1.0.4.jar;jaxrpc.jar;log4j-1.2.8.jar;mail.jar;saaj.jar;wsdl4j-1.5.1.jar; org.apache.axis.wsdl.WSDL2Java -p axisclient -o src -u "D:/calc.wsdl"
可能會報錯,找不到activation.jar和mail.jar

下載兩個jar包到當前目錄即可以解決

貼一下wsdl文件,大家可以試一試

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="calc"
 targetNamespace="http://192.168.20.240:8888/calc.wsdl"
 xmlns:tns="http://192.168.20.240:8888/calc.wsdl"
 xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
 xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:ns="urn:calc"
 xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/"
 xmlns:HTTP="http://schemas.xmlsoap.org/wsdl/http/"
 xmlns:MIME="http://schemas.xmlsoap.org/wsdl/mime/"
 xmlns:DIME="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/"
 xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/"
 xmlns="http://schemas.xmlsoap.org/wsdl/">

<types>

 <schema targetNamespace="urn:calc"
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ns="urn:calc"
  xmlns="http://www.w3.org/2001/XMLSchema"
  elementFormDefault="unqualified"
  attributeFormDefault="unqualified">
  <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
 </schema>

</types>

<message name="addRequest">
 <part name="a" type="xsd:double"/><!-- ns__add::a -->
 <part name="b" type="xsd:double"/><!-- ns__add::b -->
</message>

<message name="addResponse">
 <part name="result" type="xsd:double"/><!-- ns__add::result -->
</message>

<message name="subRequest">
 <part name="a" type="xsd:double"/><!-- ns__sub::a -->
 <part name="b" type="xsd:double"/><!-- ns__sub::b -->
</message>

<message name="subResponse">
 <part name="result" type="xsd:double"/><!-- ns__sub::result -->
</message>

<message name="mulRequest">
 <part name="a" type="xsd:double"/><!-- ns__mul::a -->
 <part name="b" type="xsd:double"/><!-- ns__mul::b -->
</message>

<message name="mulResponse">
 <part name="result" type="xsd:double"/><!-- ns__mul::result -->
</message>

<message name="divRequest">
 <part name="a" type="xsd:double"/><!-- ns__div::a -->
 <part name="b" type="xsd:double"/><!-- ns__div::b -->
</message>

<message name="divResponse">
 <part name="result" type="xsd:double"/><!-- ns__div::result -->
</message>

<message name="powRequest">
 <part name="a" type="xsd:double"/><!-- ns__pow::a -->
 <part name="b" type="xsd:double"/><!-- ns__pow::b -->
</message>

<message name="powResponse">
 <part name="result" type="xsd:double"/><!-- ns__pow::result -->
</message>

<portType name="calcPortType">
 <operation name="add">
  <documentation>Sums two values</documentation>
  <input message="tns:addRequest"/>
  <output message="tns:addResponse"/>
 </operation>
 <operation name="sub">
  <documentation>Subtracts two values</documentation>
  <input message="tns:subRequest"/>
  <output message="tns:subResponse"/>
 </operation>
 <operation name="mul">
  <documentation>Multiplies two values</documentation>
  <input message="tns:mulRequest"/>
  <output message="tns:mulResponse"/>
 </operation>
 <operation name="div">
  <documentation>Divides two values</documentation>
  <input message="tns:divRequest"/>
  <output message="tns:divResponse"/>
 </operation>
 <operation name="pow">
  <documentation>Raises a to b</documentation>
  <input message="tns:powRequest"/>
  <output message="tns:powResponse"/>
 </operation>
</portType>

<binding name="calc" type="tns:calcPortType">
 <SOAP:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
 <operation name="add">
  <SOAP:operation style="rpc" soapAction=""/>
  <input>
     <SOAP:body use="encoded" namespace="urn:calc" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  </input>
  <output>
     <SOAP:body use="encoded" namespace="urn:calc" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  </output>
 </operation>
 <operation name="sub">
  <SOAP:operation style="rpc" soapAction=""/>
  <input>
     <SOAP:body use="encoded" namespace="urn:calc" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  </input>
  <output>
     <SOAP:body use="encoded" namespace="urn:calc" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  </output>
 </operation>
 <operation name="mul">
  <SOAP:operation style="rpc" soapAction=""/>
  <input>
     <SOAP:body use="encoded" namespace="urn:calc" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  </input>
  <output>
     <SOAP:body use="encoded" namespace="urn:calc" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  </output>
 </operation>
 <operation name="div">
  <SOAP:operation style="rpc" soapAction=""/>
  <input>
     <SOAP:body use="encoded" namespace="urn:calc" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  </input>
  <output>
     <SOAP:body use="encoded" namespace="urn:calc" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  </output>
 </operation>
 <operation name="pow">
  <SOAP:operation style="rpc" soapAction=""/>
  <input>
     <SOAP:body use="encoded" namespace="urn:calc" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  </input>
  <output>
     <SOAP:body use="encoded" namespace="urn:calc" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  </output>
 </operation>
</binding>

<service name="calc">
 <documentation>Simple calculator service</documentation>
 <port name="calc" binding="tns:calc">
  <SOAP:address location="http://192.168.20.240:8888/calcserver++"/>
 </port>
</service>

</definitions>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章