axis1,xfire,jUnit 测试案列+开Web Service开发指南+axis1.jar下载 代码

axis1,xfire,jUnit 测试案列+Web Service开发指南(中).pdf+axis1.jar下载    代码

项目和资源文档+jar 下载:http://download.csdn.net/detail/liangrui1988/5810873

 

项目内容:

部分主要代码:

axis1:

 

[html][/html] view plaincopy

  1. package com.webservice.test;
  2. /**
  3.  * @author liangrui
  4.  *
  5.     1:把axis-bin-1_4.zip 解压后的axis文件拷贝到tomcat webpaas目录下
  6.     2:直接把java文件拷贝到axis目录下 (是配置即时发部)
  7.     3:定时发布,有包名.
  8.          需要把编译好的java文件 也就是class文件拷贝到你的axis/WEB-INF/class文件下;
  9.       然后在WEB-INF目录下新建一个deploy.wsdd文件:
  10.       <deployment xmlns=”http://xml.apache.org/axis/wsdd/”
  11.           xmlns:java=”http://xml.apache.org/axis/wsdd/providers/java”>
  12.           <!–服务相关配置–>
  13.         <service name=”helloworldWSDD” provider=”java:RPC”>
  14.          <parameter name=”allowedMethods” value=”*”/>
  15.          <parameter name=”className” value=”com.webservice.service.HelloWorld”/>
  16.          <parameter name=”scope” value=”request”/>
  17.        </service>
  18.    </deployment>
  19.     ****************************这个是我提前做好的文件****************************
  20.     deploy.wsdd\start_Services.bat文件拷贝到axis/WEB-INF下( 这个是配置 定时发布的)
  21.     start_Services.bat //打开服务 《也可以在cmd下操作》
  22.     ***********************************************************************
  23.   4:cmd方式:
  24.     打开cmd cd到你tomcat目录下 axis WEB-INF下,输入命令:
  25.     java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd
  26.     //编译当前文件夹(WEB-INF)下的 deploy.wsdd文件,会生成一个server-config.wsdd文件
  27.   5:浏览器访问的时候会根据你的请求名字
  28.     来找这个配制文件(server-config.wsdd) 里的service 节点下的name属性 ,
  29.     再详细的解析==(也就是deploy.wsdd 文件  下的 <service name=”xx” ….>)
  30.     shutDown_Services.bat  //关闭服条 根打开服务操作一样
  31.  *
  32.  */
  33. import java.rmi.RemoteException;
  34. import javax.xml.namespace.QName;
  35. import javax.xml.rpc.ServiceException;
  36. import org.apache.axis.client.Call;
  37. import org.apache.axis.client.Service;
  38. public class Test {
  39.     public static void main(String[] args) {
  40.         jwsTest();// 即时发部
  41.         deployTest(); //定时发布 部署,有包名
  42.     }
  43.     /**
  44.      * 即时发部
  45.      */
  46.     public static void jwsTest(){
  47.         try {
  48.             // 访问的url
  49.             String url=”http://localhost:8080/axis/HelloWorld.jws”;
  50.             // 创建service
  51.             Service service = new Service();
  52.             // 通过service 创建call
  53.             Call call =(Call) service.createCall();
  54.             // 设置访问的webservice
  55.             call.setTargetEndpointAddress(url);
  56.             //调用指定方法
  57.             call.setOperationName(new QName(url,”sayHello”));
  58.             //传送参数 并返回结果
  59.             String resource=(String) call.invoke(new Object[]{“accp157”});
  60.             System.out.println(“返回的数据:”+resource);
  61.         } catch (ServiceException e) {
  62.             // TODO Auto-generated catch block
  63.             e.printStackTrace();
  64.         } catch (RemoteException e) {
  65.             // TODO Auto-generated catch block
  66.             e.printStackTrace();
  67.         }
  68.     }
  69.     /**
  70.      * 定时发布
  71.      */
  72.     public static void deployTest(){
  73.         // 访问的url
  74.         // http://项目路径 /services/服务名称(需要和deploy.wsdd 中的service 配置一)
  75.         String url =”http://localhost:8080/axis/services/helloworldWSDD”;
  76.         // 创建service
  77.         Service service = new Service();
  78.         try {
  79.             // 创建call
  80.             Call call = (Call) service.createCall();
  81.             // 设置访问的url
  82.             call.setTargetEndpointAddress(url);
  83.             // 设置调用的webservice 的方法
  84.             call.setOperationName(new QName(url,”jia”));
  85.             // 执行
  86.             int result = (Integer) call.invoke(new Object[]{2,3});
  87.             // 执行结果
  88.             System.out.println(“结果是:”+result);
  89.             call.setOperationName(new QName(url,”jian”));
  90.             result = (Integer) call.invoke(new Object[]{2,3});
  91.             System.out.println(“结果是:”+result);
  92.         } catch (Exception e) {
  93.             // TODO Auto-generated catch block
  94.             e.printStackTrace();
  95.         }
  96.     }
  97. }

java文件

 

 

[html][/html] view plaincopy

  1. public class HelloWorld {
  2.     public String sayHello(String name){
  3.         System.out.println(“hello:”+name);
  4.         return “hello..”+name;
  5.     }
  6. }

有包的java文件

 

 

[html][/html] view plaincopy

  1. package com.webservice.service;
  2. /**
  3.  * 加减乘除
  4.  * @author Administrator
  5.  *
  6.  */
  7. public class HelloWorld {
  8.     public int jia(int num1,int num2){
  9.         return num1+num2;
  10.     }
  11.     public int jian(int num1,int num2){
  12.         return num1-num2;
  13.     }
  14.     public int chen(int num1,int num2){
  15.         return num1*num2;
  16.     }
  17.     public int chun(int num1,int num2){
  18.         if(num2 > 0){
  19.             return num1/num2;
  20.         }else{
  21.             return 0 ;
  22.         }
  23.     }
  24. }

axis1 调用天气预报测试:

 

 

[html][/html] view plaincopy

  1. package com.webservice.test;
  2. import java.rmi.RemoteException;
  3. import org.apache.axis.client.Call;
  4. import org.apache.axis.client.Service;
  5. import javax.xml.namespace.QName;
  6. import javax.xml.rpc.ServiceException;
  7. public class ForecastTest {
  8.     public static void main(String[] args) {
  9.          // http://WebXml.com.cn/是wsdl中definitions根节点的targetNamespace属性
  10.         // webservice路径
  11.         // 这里后面加不加 “?wsdl” 效果都一样的
  12.         String endpoint = “http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl”;
  13.         String[] res = null;
  14.         // 查询城市天气的接口方法名
  15.         String operationName = “getWeather”;
  16.         // 定义service对象
  17.         Service service = new Service();
  18.         // 创建一个call对象
  19.         Call call = null;
  20.         try {
  21.             call = (Call) service.createCall();
  22.         } catch (ServiceException e1) {
  23.             // TODO Auto-generated catch block
  24.             e1.printStackTrace();
  25.         }
  26.         // 设置目标地址,即webservice路径
  27.         call.setTargetEndpointAddress(endpoint);
  28.         // 设置操作名称,即方法名称
  29.         call.setOperationName(new QName(“http://WebXml.com.cn/”,operationName));
  30.         // 设置方法参数
  31.         call.addParameter( new QName(“http://WebXml.com.cn/”,”theCityCode”),
  32.         org.apache.axis.encoding.XMLType.XSD_STRING,
  33.         javax.xml.rpc.ParameterMode.IN);
  34.         call.addParameter( new QName(“http://WebXml.com.cn/”,”theUserID”),
  35.                 org.apache.axis.encoding.XMLType.XSD_STRING,
  36.                 javax.xml.rpc.ParameterMode.IN);
  37.         // 设置返回值类型
  38.         //对于返回是字符串数组的返回类型只有这两种可行
  39.         //call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_VECTOR);
  40.         call.setReturnClass(java.lang.String[].class);
  41.         call.setUseSOAPAction(true);
  42.         call.setSOAPActionURI(“http://WebXml.com.cn/”+”getWeather”);
  43.         String cityCode=”广州”;
  44.         String userId=””;
  45.         try {
  46.             res=(String[]) call.invoke(new Object[]{cityCode,userId});
  47.         } catch (RemoteException e) {
  48.             // TODO Auto-generated catch block
  49.             e.printStackTrace();
  50.         }
  51.         // 如果返回类型是org.apache.axis.encoding.XMLType.SOAP_VECTOR时用下面的转型接收
  52.         //Vector v=(Vector) call.invoke(new Object[]{cityCode,userId});
  53.         for(String str:res)
  54.         {
  55.             System.out.println(str);
  56.         }
  57.        // return res;
  58.     }
  59.     }

标签