Axis实现 web service接口开发 + 客户端调用
2016-05-28 15:49
573 查看
看到网上挺多人找webservice axis开发案例,但是网上较多的都是有点乱,初学者不太容易看得懂,所以最近看到自己终于有了点空闲时间,就上传了一份比较简单的webservice axis的完整案例。
只适用于初学者。
一、新建一个web项目
导入lib包。
2.配置 web.xml
如果报错,则返回项目检测配置是否有问题等,成功则会得到wsdl文档。
二、客户端调用
案例下载地址:http://down.51cto.com/data/2220274
只适用于初学者。
一、新建一个web项目
导入lib包。
2.配置 web.xml
<!-- axis 配置 --> <servlet> <display-name>Apache-Axis Servlet</display-name> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>3.然后在项目中的src下创建包,再在包下创建一个类,用来提供web service接口。
package com; public class HelloWorld { public String sayHello(String msg){ if(null==msg || "".equals(msg)){ return "您好!"; }else{ return "您好" + msg + "!"; } } public int sayAge(){ return 28; } }4.配置 server-config.wsdd文件。
<!-- deployment 表明这是一个axis部署描述文件 --> <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <!-- axis提供的一个web service服务。service标签中parameter allowedMethod用于指定一个以空格分隔的方法名, 只有这些方法可以通过web service访问。也可以将这个值指定为“*”表示所有的方法都可以访问。--> <service name="axisEm" provider="java:RPC"> <!-- 指定类名 --> <parameter name="className" value="com.HelloWorld" /> <!-- 类中允许访问的方法 --> <parameter name="allowedMethod" value="*"></parameter> <!-- 命名空间 --> <namespace>http://xml.apache.org/axis/wsdd/</namespace> <parameter name="scope" value="Application"/> </service> <!-- 服务器端的传输方式. 指定处理器 --> <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/> <transport name="http"> <requestFlow> <handler type="java:org.apache.axis.handlers.http.URLMapper"/><!-- 引用上边的 --> </requestFlow> </transport> </deployment>5.运行该项目,访问http://localhost:8080/axisTest/services/axisEm?wsdl,
如果报错,则返回项目检测配置是否有问题等,成功则会得到wsdl文档。
二、客户端调用
package com.test; import javax.xml.namespace.QName; import org.apache.axis.client.Call; import org.apache.axis.client.Service; public class webTest { public static void main(String[] args) { String _newendPoint = "http://localhost:8080/axisTest/services/helloWorldService?wsdl"; String _newNameSpace = "http://xml.apache.org/axis/wsdd/"; try { Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL(_newendPoint)); call.setOperationName(new QName(_newNameSpace, "sayHello")); String s = (String) call.invoke(new Object[] { "st001" }); System.out.println(s); } catch (Exception ex) { ex.printStackTrace(); } } }
案例下载地址:http://down.51cto.com/data/2220274
相关文章推荐
- axis备忘
- 对学Oracle数据库初学者的开场篇
- JavaScript初学者应注意的七个细节详细介绍
- asp.net下实现支持文件分块多点异步上传的 Web Services
- C语言初学者代码中的常见错误与问题
- 基于JAVA中使用Axis发布/调用Webservice的方法详解
- Web Services使用多态的方法
- AXIS v1.4的包依赖
- 学习Linux推荐阅读
- Aixs2开发Web service操作数据库demo
- 使用AXIS生成SOAP Web Service客户端的方法
- 令PHP初学者的困惑的10个知识点
- Python 初学者的17个技巧
- 从零开始学 ASO:10 分钟帮你全面了解 ASO
- Linux上的虚拟化技术 Xen 初学者指南
- python问题:IndentationError:expected an indented block错误解决 .
- 组策略gpedit查看服务services,报安全设置禁止运行该页中activeX控件该页无法正常显示
- 献给初学者:谈谈如何学习Linux操作系统
- 献给初学者:谈谈如何学习Linux操作系统
- 脱机查看Windows Phone 4天教程(Windows Phone 开发教学系列视频之四天玩转 Window