AXIS2实例4:wsdl2java(最简单的string)

来源:互联网 发布:linux apache配置php7 编辑:程序博客网 时间:2024/05/17 16:46

1. wsdl文件

D:/axis151/mysamples/wsdl2java/HelloService.wsdl

<?xml version="1.0" encoding="UTF-8"?>

<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://cn.com.demo.axis/HelloService" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http://cn.com.demo.axis/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://cn.com.demo.axis/HelloService" name="HelloServiceService">
 <types>
  <schema targetNamespace="http://cn.com.demo.axis/xsd" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" elementFormDefault="qualified">
   
   <element name="echoStringParam" type="xsd:string"/>
   <element name="echoStringReturn" type="xsd:string"/>
  </schema>
 </types>
 <message name="echoString">
  <part name="stringParam" element="xsd1:echoStringParam"/>
 </message>
 <message name="echoStringResponse">
  <part name="result" element="xsd1:echoStringReturn"/>
 </message>

 <portType name="HelloServicePortType">
  <operation name="echoString">
   <input name="echoString" message="tns:echoString"/>
   <output name="echoStringResponse" message="tns:echoStringResponse"/>
  </operation>

 </portType>

 <binding name="HelloServicePortBinding" type="tns:HelloServicePortType">
  <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
  <operation name="echoString">
   <soap:operation soapAction="echoString" style="document"/>
   <input>
    <soap:body use="literal" namespace="http://cn.com.demo.axis/HelloService"/>
   </input>
   <output>
    <soap:body use="literal" namespace="http://cn.com.demo.axis/HelloService"/>
   </output>
  </operation>
 </binding>
 
 <service name="HelloServiceService">
  <port name="HelloServicePort" binding="tns:HelloServicePortBinding">
   <soap:address location="http://cn.com.demo.axis/stkv3/wsdl/HelloService.wsdl"/>
  </port>
 </service>
</definitions>

 

2. wsdl2java 生成 server代码

D:/axis151/mysamples/wsdl2java/wsdl2java -uri HelloService.wsdl -ss -sd -d xmlbeans -o . -p cn.com.demo.axis

生成: src/Java代码, resource/services.xml, & build.xml

 

3. 修改 server 代码中的 skeleton 文件

D:/axis151/mysamples/wsdl2java/src/cn.com.demo.axis.HelloServiceServiceSkeleton.java

 public axis.demo.com.cn.xsd.EchoStringReturnDocument echoString
                  (
                  axis.demo.com.cn.xsd.EchoStringParamDocument echoStringParam
                  )
            {
                //TODO : fill this with the necessary business logic
    EchoStringReturnDocument doc = EchoStringReturnDocument.Factory.newInstance();
    doc.setEchoStringReturn(echoStringParam.getEchoStringParam());
                return doc;
                //throw new  java.lang.UnsupportedOperationException("Please implement " + this.getClass().getName() + "#echoString");
        }

 

 

4. 部署 server 并测试

D:/axis151/mysamples/wsdl2java/ant jar.server

copy D:/axis151/mysamples/wsdl2java/build/lib/HelloServiceService.aar to %tomcat_home%/webapps/axis2/services

testing: http://localhost/axis2/services

 

5. wsdl2java 生成 client 代码

D:/axis151/mysamples/wsdl2java/wsdl2java -uri HelloService.wsdl -d xmlbeans -o . -p cn.com.demo.axis

 

6. client.java 调用 stub文件

D:/axis151/mysamples/wsdl2java/src/cn.com.demo.axis.Client.java

package cn.com.demo.axis;

import axis.demo.com.cn.xsd.EchoStringParamDocument;
import axis.demo.com.cn.xsd.EchoStringReturnDocument;

 

public class Client {
 public static void main(String[] args){
  try{
   String url = "http://localhost/axis2/services/HelloServiceService";
   HelloServiceServiceStub stub = new HelloServiceServiceStub(null,url);
   
   EchoStringParamDocument request = EchoStringParamDocument.Factory.newInstance();
   request.setEchoStringParam("u r kidding!");
   
   EchoStringReturnDocument reponse = stub.echoString(request);
   
   System.out.println(reponse.getEchoStringReturn());
   
   
   
  }catch(Exception ex){
   ex.printStackTrace();
  }
 }

}

 

7. 部署 client 并测试

D:/axis151/mysamples/wsdl2java/build.xml增加:

<target if="jars.ok" name="run.client">
 <java classname="cn.com.demo.axis.Client">
     <classpath refid="client.class.path" />
        </java>
        <path id="client.class.path">
            <pathelement location="${lib}/${name}-test-client.jar"/>
            <path refid="axis2.class.path"/>
            <pathelement location="${classes}"/>
        </path>

    </target>

 

D:/axis151/mysamples/wsdl2java/ant jar.client

D:/axis151/mysamples/wsdl2java/ant run.client