axis 开发webservice
摘要:本节主要用于介绍使用axis开发webservice,包括服务端的创建、webservice的部署、客户端的调用。 preparation:?说明:相关的可能要了解SOAP(简单对象访问协议)、WSDL(web服务描述语言)、XML(可扩展标记语言)、axis(阿帕奇可扩展交互系统)等相关知识。 1.下载axis的jar包,请到apache官网或者在百度自行下载,然后导入jar包,不清楚的话导入所有的jar包就好了。(本人用的是axis1的版本,因为项目中用的是axis1的版本) 2.webservice客户端生成工具genclient.bat(后面会对这个工具做一个简单的说明) 之前介绍没有说明本机的环境,现在把本机环境罗列一下: 系统:XP? myeclipse:6.5? tomcat:5.X? JDK:1.5 ???? 生成webservice的方式有XFire、Jax-WS、axis等,使用axis调用webservi有三种方式:动态调用接口、使用动态代理Dynamic Proxy、使用从WSDL生成的存根generated Stubs from Service WSDL description,由于本人工作中使用的是axis,调用webservice的方式用到的有动态调用接口、使用从WSDL生成的存根generated Stubs from Service WSDL description,故本节只介绍用axis调用webservice的这两种方式。后续的拓展部分根据需要再说。 start:第一步:服务器端的开发(1)开发java文件代码如下:接口文件:IBbossGroupInfoService.java1 package com.asiainfo.b2p.soap.interfaces; ?实现类:IBbossGroupInfoServiceImpl.javapackage com.asiainfo.b2p.soap.impl; ????? 说明:为了更加的接近实际的开发,这个是本机上运行的程序,实现的功能是通过一个编号查询相关信息拼成一个字符串,方法体的部分我删除了,你需要用这个代码的话,直接拷贝修改包名称就可以直接用了。(2)wsdd文件wsdd文件只需加入一列几行(前提是你之前已经有wsdd文件了,没有的话可以在下载的apache的demo中拷贝一个): 1 <service name="GroupInfoService" type="" provider="java:RPC"> ????? 这个文件放在项目的WEB-INF下面。<service>标签的name属性是发布的webservice的名称,可以自己命名,第一个<parameter>标签的value属性指定实现类的完整路径,包括类名。其他的地方默认就好。 (3)配置web.xml文件1 <servlet> 指定处理类以及映射就好,如果像这样配置的话,后面再写webservice的话,这个文件就不用再配置了。 第二步:客户端的开发(1).动态调用接口代码如下:package test.webserviceclient; 代码中的注释很详细,我就不介绍了。 (2).使用从WSDL生成的存根generated Stubs from Service WSDL description第一步:配置genclient.bat文件 右键单击“编辑”打开bat文件如下(为了便于说明,每行的意思我就直接写在后面了): set Axis_Lib=E:esoplib?????? -----指定工程的lib目录 第二步:用genclient.bat生成四个客户端类 双击编译好的bat文件,执行后生成的四个java类如下:
?第三步:写测试类调用webservice * 先介绍创建的四个文件分别为: ?对这种生成客户端四个类的情况我要说明下,还有通过wsdltojava命令的方式生成客户端类,但是这个都是一种通过axis调用webservice的方式,既然有工具我们为什么不用呢? 所以能使用wsdltojava命令的方式,我就不介绍了。 test result:代码的测试截图我就不贴了,感兴趣的可以试试看。《!--好久没有上来活动了,今天写的是最近用到的一个东东,本人也是个菜鸟,刚刚在项目中用到webservice,如果有不对的,请各位大侠指正。--》(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- angularjs – mock $httpBackend正则表达式不匹配
- webservice详解(CXF)
- 浅谈WebService的调用
- angularjs中使用ng-repeat渲染最后一个li的时候设置不同样式
- 后台coder的神器!Bootstrap && Layoutit
- 在shell脚本中使用空格执行动态创建的命令
- 为什么Scala在第一种情况下警告类型擦除,但不是第二种情况?
- 使Vim Curly Braces,Square Braces,Parens像Textmate一样
- webservice技术之-axis2(服务端ADB)
- scala – 一个类的模式,它是一个自己的列表