WebService-----Axis2搭建WebService项目
发布时间:2020-12-16 23:15:36 所属栏目:安全 来源:网络整理
导读:步骤1:下载Axis2 选择Standard Binary Distribution的zip包;解压到任一路径下 步骤2:配置Axis2 Window - Preferences - Web Service? 步骤3:开发WebService 1)、新建一个Dynamic Web Project,命名为“WebService” 2)、新建一个class,命名为“Calcul
步骤1:下载Axis2 选择Standard Binary Distribution的zip包;解压到任一路径下 步骤2:配置Axis2 Window -> Preferences -> Web Service? 步骤3:开发WebService 1)、新建一个Dynamic Web Project,命名为“WebService” 2)、新建一个class,命名为“CalculateService” package com; public class CalculateService { // 加法 public float plus(float x,float y) { return x + y; } // 减法 public float minus(float x,float y) { return x - y; } // 乘法 public float multiply(float x,float y) { return x * y; } // 除法 public float divide(float x,float y) { if (y != 0) { return x / y; } else return -1; } } 3)、新建Web Service 右键“WebService”项目-> new -> other 启动后,点击next -> next;都默认即可;完成结果如下: 4)、测试web服务 在浏览器中输入上步中web service exploer的地址: 步骤4:开发客户端调用程序 1)、新建Java Project项目 2)、把Axis2安装目录下lib目录下的所有jar包导入到该工程中 3)、新建CalculateServiceTest类 <pre name="code" class="java">package webServiceTest; import javax.xml.namespace.QName; import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.rpc.client.RPCServiceClient; public class CalculateServiceTest { public static void main(String[] args) throws AxisFault { // 使用RPC方式调用WebService RPCServiceClient serviceClient = new RPCServiceClient(); Options options = serviceClient.getOptions(); // 指定调用WebService的URL EndpointReference targetEPR = new EndpointReference( "http://localhost:8080/first/services/CalculateService"); options.setTo(targetEPR); // 指定要调用的计算机器中的方法及WSDL文件的命名空间(其实就是http://调用方法所在类的所在包的名字;假如包名为com.org.net;则http://com.org.net) QName opAddEntry = new QName("http://com","plus");// 加法 QName opAddEntryminus = new QName("http://com","minus");// 减法 QName opAddEntrymultiply = new QName("http://com","multiply");// 乘法 QName opAddEntrydivide = new QName("http://com","divide");// 除法 // 指定plus方法的参数值为两个,分别是加数和被加数 Object[] opAddEntryArgs = new Object[] { 1,2 }; // 指定plus方法返回值的数据类型的Class对象 Class[] classes = new Class[] { float.class }; // 调用plus方法并输出该方法的返回值 System.out.println(serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs,classes)[0]); System.out.println(serviceClient.invokeBlocking(opAddEntryminus,classes)[0]); System.out.println(serviceClient.invokeBlocking(opAddEntrymultiply,classes)[0]); System.out.println(serviceClient.invokeBlocking(opAddEntrydivide,classes)[0]); /* * invokeBlocking(arg1,arg2,arg3); 调用WebService中的方法 * arg1:QName对象,要调用的方法名 * arg2:Object[]类型,要调用的WebService方法的参数值;无参数时使用new Object[]{}而不是null * arg3:Class[]类型,WebService方法的返回值类型的Class对象;若被调用的WebService方法无返回值,则使用invokeRobust方法 */ } } 4)、运行该项目(前提是WebService服务已启动) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |