eclipse下如何用axis生成wsdl客户端

一、Axis环境的安装

  1、安装环境 J2SE SDK 1.4,Tomcat 5.0,eclipse 3.2。
  2、到 http://xml.apache.org 网站下载Axis安装包。
  3、将Axis相关包文件放在WEB-INF/lib目录下。
  4、Axis可选的包:activation.jar; mail.jar; xmlsec-1.4.Beta1.jar拷贝到WEB-INF目录下,生成客户端时候需要使用。
  Axis支持三种web service的部署和开发,分别为:
  1、Dynamic Invocation Interface (DII)
  2、Dynamic Proxy方式
  3、Stubs方式


二   新建web项目test,编写服务端程序server,SayHello.java,编译server.SayHello.java

 package server;
 public class SayHello
 {
  public String getName(String name)
  {
   return "hello "+name;
  }
 }
 
三 编写deploy.wsdd文件

 <deployment xmlns="http://xml.apache.org/axis/wsdd/"
 xmlns:java = "http://xml.apache.org/axis/wsdd/providers/java" >      
  <!--HelloWorld为webservice的名字,java:RPC为服务类型,  -->     
   <service name = "SayHello" provider = "java:RPC" >    
   <!--参数className指定具体的类  -->    
   <parameter name = "className" value = "server.SayHello" />  
    <!-- 此参数定义允许调用的方法,*号表示所有public方法 -->      
   <parameter name = "allowedMethods" value = "*" />           
  </service >      
 </deployment > 

 
四  发布服务
 set Axis_Lib=E:/MyTest/test/WebRoot/WEB-INF/lib
 set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
 set Axis_Servlet=http://localhost:8081/test/servlet/AxisServlet
 %Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd
 执行这个批处理文件,这时候,如果提示成功的话,访问http://localhost:8081/test/services 就会显示服务列表
    并访问http://localhost:8081/test/services/SayHello?wsdl
 生成文件sayHello.wsdl


五  编写WSDL2Java.bat,WSDL2Java.bat内容如下
 set Axis_Lib=E:/MyTest/test/WebRoot/WEB-INF/lib
 set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
 set Output_Path=E:/MyTest/test/src
 set Package=client.SayHello
 %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% SayHello.wsdl
 执行这个批处理文件就可以生成client stub
  生成的stub client文件列表为:SayHello.java,SayHelloService.java,SayHelloServiceLocator.java,SayHelloSoapBindingStub.java .

 

六  编写客户端程序,编译并执行
    public class Test {

  /**
   * @param args
   * @throws ServiceException
   * @throws RemoteException
   */
  public static void main(String[] args) throws ServiceException, RemoteException {

    SayHelloService service = new SayHelloServiceLocator();
    SayHello_PortType client = service.getSayHello() ;
    String retValue = client.getName("clientname");
    System.out.println(retValue);

  }

 }


   

你可能感兴趣的:(java,eclipse,webservice,servlet,String,service)