飞机航道图:WebService之axis2详解

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 12:00:15
我是用myeclipse写的首先下载axis2jar包new 一个web project 工程名AxisDemo把axis2jar包中的jar文件复制到AxisDemo/WebRoot/Web-INF下的lib中新建一个server.HelloAxis类package server;public class HelloAxis {
 public String hello(String name){
  return "Hello  "+name;  
 }}配置WEB-INF下的web.xml文件,添加如下内容
        AxisServlet
        org.apache.axis.transport.http.AxisServlet
   

   
        AxisServlet
        /services/*
   
在WEB-INF下新建deploy.wsdd文件,内容如下
             //红色部分可以随便起的
 
 
 

把项目部署到tomcat中,在部署后的tomcat该项目下F:\apache-tomcat-6.0.20\webapps\AxisDemo\WEB-INF新建deploy.bat批处理文件内容set Axis_Lib=F:\apache-tomcat-6.0.20\webapps\AxisDemo\WEB-INF\lib     //根据自己的项目路径
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:8080/AxisDemo/services/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd
@echo off                                                                                            //为了查看是否出错
pause-----------------执行deploy.bat则会在WEB-INF下生成server-config.wsdd文件和attachments文件夹在浏览器打开http://localhost:8080/AxisDemo/services则可看到所有的service列表写一个测试类,main方法内容如下public static void main(String[] args) {
   String  SeverAdd="http://localhost:8080/AxisDemo/services/HelloAxis";     Service service = new Service();
   try {
    Call call = (Call) service.createCall();
    call.setTargetEndpointAddress(new URL(SeverAdd));
    call.setOperationName(new QName(SeverAdd,"hello"));//HelloAxis类的方法名
    String result = (String)call.invoke(new Object[]{"xl"});
    System.out.println(result);
   }catch(Exception e){
    e.printStackTrace();
   }
          }-------------------以下转载--------详见http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c42246071a23b4fb2d281a1980852d3d5aeb1e41eaf235702a0123aa9bcf954dddbc95282f8e3034074fc70358c75cf28b102a8b7fce4de8df0ee7cde733e3fd90808e0e04dd52756d80879c5b70498a3ae71440b0ecc209025f61e0ab7627a8193774df721de010eee1427906f2e1dc2c4ac12c&p=89769a4288d91ceb08e2927b480c&user=baidu&fm=sc&query=http%3A//xml%2Eapache%2Eorg/axis/%7DHttpErrorCode%3A404&qid=d896488d056b60bc&p1=9-------Handler应用--------------------------------Hander类可以在webservice每个方法被调用之前或后做一些事情 deploy.wsdd:
xml.apache.org/axis/wsdd/"
 xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 
  
 

 
  
   
  

  
  

  
  

  
  
   
  

 

 
 





  HelloWorldHandler.java:
package axisTest;
import org.apache.axis.AxisFault;
import org.apache.axis.MessageContext;
import org.apache.axis.handlers.BasicHandler;

/**服务端:Hander类可以在webservice每个方法被调用之前或后做一些事情
 * @author Tower
 *
 */
public class HelloWorldHandler extends BasicHandler{
 /**
  *
  */
 private static final long serialVersionUID = 1L;
 private long COUNT=0L;
 private int requestCount;
 public void invoke(MessageContext arg0) throws AxisFault {
  requestCount++;
  COUNT++;
  String status=(String)this.getOption("status");
  System.out.println("HelloWorldHandler的status是:"+status+",COUNT="+COUNT+", HandlerRequestCount="+requestCount);
  
 }

}