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


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

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


    项目内容:


    部分主要代码:

    axis1:

    package com.webservice.test;
    
    /**
     * @author liangrui
     * 
    	1:把axis-bin-1_4.zip 解压后的axis文件拷贝到tomcat webpaas目录下
    	2:直接把java文件拷贝到axis目录下 (是配置即时发部)
    	3:定时发布,有包名.
    	     需要把编译好的java文件 也就是class文件拷贝到你的axis/WEB-INF/class文件下;
    	  然后在WEB-INF目录下新建一个deploy.wsdd文件:
    	  
    	  <deployment xmlns="http://xml.apache.org/axis/wsdd/" 
              xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
              <!--服务相关配置-->
    	    <service name="helloworldWSDD" provider="java:RPC">
    		 <parameter name="allowedMethods" value="*"/>
             <parameter name="className" value="com.webservice.service.HelloWorld"/>
    		 <parameter name="scope" value="request"/>               
    	   </service>
       </deployment>
    	****************************这个是我提前做好的文件****************************
    	deploy.wsddstart_Services.bat文件拷贝到axis/WEB-INF下( 这个是配置 定时发布的)
    	start_Services.bat //打开服务 《也可以在cmd下操作》
    	***********************************************************************
      4:cmd方式:
    	打开cmd cd到你tomcat目录下 axis WEB-INF下,输入命令:
    	java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd
    	//编译当前文件夹(WEB-INF)下的 deploy.wsdd文件,会生成一个server-config.wsdd文件
    	
      5:浏览器访问的时候会根据你的请求名字 
    	来找这个配制文件(server-config.wsdd) 里的service 节点下的name属性 ,
    	再详细的解析==(也就是deploy.wsdd 文件	下的 <service name="xx" ....>)
    	
    	shutDown_Services.bat  //关闭服条 根打开服务操作一样
     *
     */
    
    import java.rmi.RemoteException;
    
    import javax.xml.namespace.QName;
    import javax.xml.rpc.ServiceException;
    
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    
    public class Test {
    	public static void main(String[] args) {
    		
    		jwsTest();// 即时发部
    		
    		deployTest(); //定时发布 部署,有包名
    	
    	}
    	
    	/**
    	 * 即时发部
    	 */
    	public static void jwsTest(){
    		try {
    			// 访问的url
    			String url="http://localhost:8080/axis/HelloWorld.jws";
    			// 创建service
    			Service service = new Service();
    			// 通过service 创建call
    			Call call =(Call) service.createCall();
    			// 设置访问的webservice
    			call.setTargetEndpointAddress(url);
    			//调用指定方法
    			call.setOperationName(new QName(url,"sayHello"));
    			//传送参数 并返回结果
    			String resource=(String) call.invoke(new Object[]{"accp157"});
    			
    			System.out.println("返回的数据:"+resource);
    			
    		} catch (ServiceException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (RemoteException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    	/**
    	 * 定时发布
    	 */
    	public static void deployTest(){
    		// 访问的url
    		// http://项目路径 /services/服务名称(需要和deploy.wsdd 中的service 配置一)
    		String url ="http://localhost:8080/axis/services/helloworldWSDD";
    		// 创建service
    		Service service = new Service();
    		try {
    			// 创建call
    			Call call = (Call) service.createCall();
    			// 设置访问的url
    			call.setTargetEndpointAddress(url);
    			// 设置调用的webservice 的方法
    			call.setOperationName(new QName(url,"jia"));
    			// 执行
    			int result = (Integer) call.invoke(new Object[]{2,3});
    			// 执行结果
    			System.out.println("结果是:"+result);
    			
    			call.setOperationName(new QName(url,"jian"));
    			
    			result = (Integer) call.invoke(new Object[]{2,3});
    			
    			System.out.println("结果是:"+result);
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    	}
    	
    }
    


    java文件

    public class HelloWorld {
    	public String sayHello(String name){
    		System.out.println("hello:"+name);
    		return "hello.."+name;
    	}
    
    }
    


    有包的java文件

    package com.webservice.service;
    
    /**
     * 加减乘除
     * @author Administrator
     *
     */
    public class HelloWorld {
    	
    	public int jia(int num1,int num2){
    		return num1+num2;
    	}
    	public int jian(int num1,int num2){
    		return num1-num2;
    	}
    	public int chen(int num1,int num2){
    		return num1*num2;
    	}
    	public int chun(int num1,int num2){
    		if(num2 > 0){
    			return num1/num2;
    		}else{
    			return 0 ;
    		}
    	}
    	
    }
    


    axis1 调用天气预报测试:

    package com.webservice.test;
    
    import java.rmi.RemoteException;
    
    
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    
    import javax.xml.namespace.QName;
    
    import javax.xml.rpc.ServiceException;
    
    public class ForecastTest {
    	public static void main(String[] args) {
    		
    		 // http://WebXml.com.cn/是wsdl中definitions根节点的targetNamespace属性  
    	      
    	    // webservice路径   
    	    // 这里后面加不加 "?wsdl" 效果都一样的  
    	    String endpoint = "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl";          
    	    String[] res = null;   
    	      
    	    // 查询城市天气的接口方法名   
    	    String operationName = "getWeather";   
    	    // 定义service对象  
    	    Service service = new Service();   
    	    // 创建一个call对象  
    	    Call call = null;
    		try {
    			call = (Call) service.createCall();
    		} catch (ServiceException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		}   
    	    // 设置目标地址,即webservice路径   
    	    call.setTargetEndpointAddress(endpoint);   
    	    // 设置操作名称,即方法名称   
    	    call.setOperationName(new QName("http://WebXml.com.cn/",operationName));   
    	    // 设置方法参数   
    	    call.addParameter( new QName("http://WebXml.com.cn/","theCityCode"),  
    	    org.apache.axis.encoding.XMLType.XSD_STRING,   
    	    javax.xml.rpc.ParameterMode.IN);   
    	    call.addParameter( new QName("http://WebXml.com.cn/","theUserID"),  
    	            org.apache.axis.encoding.XMLType.XSD_STRING,   
    	            javax.xml.rpc.ParameterMode.IN);   
    	    // 设置返回值类型   
    	    //对于返回是字符串数组的返回类型只有这两种可行  
    	      
    	    //call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_VECTOR);  
    	    call.setReturnClass(java.lang.String[].class);  
    	      
    	    call.setUseSOAPAction(true);   
    	    call.setSOAPActionURI("http://WebXml.com.cn/"+"getWeather");  
    	      
    	    String cityCode="广州";
    	    String userId="";
    	    try {
    			res=(String[]) call.invoke(new Object[]{cityCode,userId});
    		} catch (RemoteException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}   
    	      
    	    // 如果返回类型是org.apache.axis.encoding.XMLType.SOAP_VECTOR时用下面的转型接收  
    	    //Vector v=(Vector) call.invoke(new Object[]{cityCode,userId});   
    	    for(String str:res)  
    	    {  
    	        System.out.println(str);  
    	    }  
    	   // return res;  
    	}  
    	}
    
    



  • 相关阅读:
    JDBC
    Listener监听器
    Filter过滤器
    Jstl标签库
    el表达式
    Ajax技术
    数据交换格式之
    MVC模式
    函数
    二维数组练习
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3215203.html
Copyright © 2020-2023  润新知