WebService学习
2015-08-13 16:24
204 查看
参考:http://www.cnblogs.com/xwdreamer/archive/2011/12/07/2296914.html
http://cxshun.iteye.com/blog/1275408
去官网下载包WebService所需要的包:http://axis.apache.org/axis2/java/core/modules/index.html
配置WebService所在的包
新建一个动态web工程
代码如下:
新建一个WebService
会自动生成:
我们新建一个MyWebServiceTest.java,代码如下:
运行下上段代码就会出结果,如果程序报错,应该是对应的http://main改成自己的WSDL文件的命名空间,或者导入所需要的包,包在axis2-1.6.3\lib目录下。
http://cxshun.iteye.com/blog/1275408
去官网下载包WebService所需要的包:http://axis.apache.org/axis2/java/core/modules/index.html
配置WebService所在的包
新建一个动态web工程
代码如下:
package main; /** * 计算器运算 * */ 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; } }
新建一个WebService
会自动生成:
我们新建一个MyWebServiceTest.java,代码如下:
package main; 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 MyWebServiceTest { /** * @param args * @throws AxisFault */ public static void main(String[] args) throws AxisFault { // TODO Auto-generated method stub // 使用RPC方式调用WebService RPCServiceClient serviceClient = new RPCServiceClient(); Options options = serviceClient.getOptions(); // 指定调用WebService的URL EndpointReference targetEPR = new EndpointReference( "http://localhost:8080/MyWebService/services/CalculateService"); options.setTo(targetEPR); // 指定要调用的计算机器中的方法及WSDL文件的命名空间:main QName opAddEntry = new QName("http://main", "plus");// 加法 QName opAddEntryminus = new QName("http://main", "minus");// 减法 QName opAddEntrymultiply = new QName("http://main", "multiply");// 乘法 QName opAddEntrydivide = new QName("http://main", "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, opAddEntryArgs, classes)[0]); System.out.println(serviceClient.invokeBlocking(opAddEntrymultiply, opAddEntryArgs, classes)[0]); System.out.println(serviceClient.invokeBlocking(opAddEntrydivide, opAddEntryArgs, classes)[0]); } }
运行下上段代码就会出结果,如果程序报错,应该是对应的http://main改成自己的WSDL文件的命名空间,或者导入所需要的包,包在axis2-1.6.3\lib目录下。
相关文章推荐
- 挑选镇长问题
- 我是如何构建一个持续发展的项目
- 使用py2exe生成独立的exe文件
- linux学习笔记----文件处理命令--head= 显示文件前几行内容
- Find The Multiple(POJ--1426
- linux安装vmware tools 找不到kernel路径
- c&c++的若干条知识点汇总
- Ofbiz 入门介绍
- hdu 4445 Crazy Tank (暴力枚举)
- 将博客搬至CSDN
- Red and Black (BFS)poj 1979
- 黑客成长之路------十问(第6天)
- 整形数组合并_用 set
- createjs初学-关于cache
- Netmask, 子网与 CIDR (Classless Interdomain Routing)
- 结合jQuery的unload方法实现JS退出页面弹出对话框
- android自定义View组件封装jar包
- UIImage 压缩
- Netmask, 子网与 CIDR (Classless Interdomain Routing)
- Android动画