AXIS框架搭建webservice简易教程.doc_第1页
AXIS框架搭建webservice简易教程.doc_第2页
AXIS框架搭建webservice简易教程.doc_第3页
AXIS框架搭建webservice简易教程.doc_第4页
AXIS框架搭建webservice简易教程.doc_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AXIS框架搭建webservice简易教程1.1 Axis介绍Axis(Apache eXtendsible Interaction System 的缩写) 是一款开源的WebService运行引擎,它是SOAP协议的一个实现,其本身来源于Apache的另一个项目Apache SOAP.Axis分为1.x和2.x两个系列1.2 Axis 安装1) 下载Axis-axis-bin-1_4.zip-/dyn/closer.cgi/ws/axis/1_4axis-bin-1_4.zip目录内容docs:说明文档lib: Axis用到的所有jar包samples: 示例代码webapps: Axis的web应用程序xmls:说明文档2) 解压axis-bin-1_4.zip,将其中的webapps下的axis 复制到tomcat的webapps目录下,本文介绍使用的服务器为tomcat6.03) 检测Axis是否安装成功,在浏览器中输入:http:/localhost:8080/axis,如果页面显示如下图说明安装成功4) 检查Axis是否缺少组件,点击页页上的Validation 链接,跳转后出现如下页面,看页面中的needed components必须安装的列表中是否有链接,如果有链接则是缺少的组件,这个地方的组件是必须安装的,Optional components是可选组件,可装可不装,安装缺少的组件只要点击页面上的链接,到跳转到的网页上下载其发布包就可以了,下载后将其压缩包内的Action.jar,mail.jar,xmlsec-xxx.jar,xalan.jar放到axis的lib目录下即可,安装完所有的组件如下面第二张图 致此安装准备工作就完成了,接下来就可以使用Axis进行WebService的开发了1.3 Axis 开发WebService1.3.1 Axis的发布方式1) 即时发布(Instant Deployment),jws文件形式的2) 定制发布(Custom Deployment),wsdd形式的1.3.2 即时发布(Instant Deployment)即时发布操作比较简单,编写好java类后,将其后缀名改为.jws,然后复制到Axis的目录中就发布完成了比如有个HelloService.java的类文件,首先将其改为HelloService.jws,然后把它放到Axis的根目录中,例如: E:apache-tomcat-6.0.20webappsaxisHelloService.jws,这就是发布时的完整路径,盘符和tomcat的路径根据自己的来设置就可以了注:使用jws发布所编写的类不能打包代码示例:服务端:/package com.service; /请不要写类似的代码,否则将发布失败/* * 使用jws方式发布WebService * author Administrator * */public class TestService /* * 加法运算 * param x * param y * return 结果 */public String add(int x,int y) return x+ + +y+ = +(x+y);/* * 问候语 * param name * return */public String sayHello(String name) return 你 好: +name;把TestService类文件复制到%TOMCAT_HOME%webapps/axis/目录下,启动tomcat服务器,打开浏览器输入地址http:/localhost:8080/axis/TestService.jws,如果出现Click to see the WSDL 的链接说明此WebService发成功,如下图点击链接会出现一个xml格式的内容,接下来编写客户端客户端:package com.client;import java.rmi.RemoteException;import space.QName;import javax.xml.rpc.ServiceException;import org.apache.axis.client.Call;import org.apache.axis.client.Service;public class HelloClient /* * param args */public static void main(String args) /* * 访问webservice的url地址即webservice的命名空间 * 组成:Axis的访问地址+发布的类名.jws * */String url = http:/localhost:8080/axis/TestService.jws; Service s = new Service(); /创建服务对象try /* * 从服务对象中获取客户端对象,返回的是javax.xml.rpc.Call实例 * 我们接收的是org.apache.axis.client.Call * 而org.apache.axis.client.Call是javax.xml.rpc.Call的一个子类 * 所以要向下竖形 */Call call = (Call) s.createCall();call.setTargetEndpointAddress(url);/设置连接点/* * 设置要调用的方法 * setOperationName的参数是space.QName实例 * 创建space.QName实例,第一个参数是webservice的url * 第二个对数是你调用的webservice方法名 */call.setOperationName(new QName(url,sayHello);/* * 利用java的返射机制进行方法调用 * invoke方法有不同参数的,下面的是代表传递给webservice方法的参数, * 如果参数为空传new Object,不能传null,因为参数是一个object数组 * 输出:你好:小王 */System.out.println(call.invoke(new Object小王);/* * 相当于setOperationName+invoke * 输出:2 + 3 = 5 */System.out.println(call.invoke(new QName(url,add), new Object2,3);/* * 直接使用命名空间+调用的方法名+参数 * * 输出:3 + 4 = 7 */System.out.println(call.invoke(url, add, new Object3,4);/就介绍这几种,其它如果用到自己研究下吧 catch (ServiceException e) e.printStackTrace(); catch (RemoteException e) / TODO Auto-generated catch blocke.printStackTrace();在实际工作中,我们所写的类不带包的很少很少,如果有包则此种方法就无能为力了,只能用定制发布1.3.3 定制发布(Custom Deployment)-WSDD定制发布需要编写一个WSDD(Web Service Deployment Descriptor),是一个xml文件,主要用来描述发布信息WSDD文件内容: 编写完后将其复制到axis的WEB-INF目录下,%TOMECAT_HOME%webapps/axis/WEB-INF/服务端:package com.service; /定制方式发布可以打包/* * 使用wsdd方式发布WebService * author Administrator * */public class TestService /* * 加法运算 * param x * param y * return 结果 */public String add(int x,int y) return x+ + +y+ = +(x+y);/* * 问候语 * param name * return */public String sayHello(String name) return 你 好: +name;这个服务端类与jws的服务端类内容是一样的,只是这个打包了,将TestService类编译生成其.class文件,把类的整个包复制Axis的class目录下,TestService复制后的路径是:%TOMCAT_HOME%webapps/axis/WEB-INF/class/com/service/TestService.class使用axis提供的客户端布署工具进行发布操作:打开cmd-进入到axis的WEB-INF目录%TOMCAT_HOME%webapps/axis/WEB-INF进入目录后输入:java Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd回车客户端:调用代码与jws 方式基本一样,只是url不同,请注意观察package com.client;import java.rmi.RemoteException;import space.QName;import javax.xml.rpc.ServiceException;import org.apache.axis.client.Call;import org.apache.axis.client.Service;public class HelloClient /* * param args */public static void main(String args) /* * 访问webservice的url地址即webservice的命名空间 * 组成:Axis的访问地址+services+发布的webservice名 * */String url = http:/localhost:8080/axis/services/TestService; Service s = new Service(); /创建服务对象try /* * 从服务对象中获取客户端对象,返回的是javax.xml.rpc.Call实例 * 我们接收的是org.apache.axis.client.Call * 而org.apache.axis.client.Call是javax.xml.rpc.Call的一个子类 * 所以要向下竖形 */Call call = (Call) s.createCall();call.setTargetEndpointAddress(url);/设置连接点/* * 设置要调用的方法 * setOperationName的参数是space.QName实例 * 创建space.QName实例,第一个参数是webservice的url * 第二个对数是你调用的webservice方法名 */call.setOperationName(new QName(url,sayHello);/* * 利用java的返射机制进行方法调用 * invoke方法有不同参数的,下面的是代表传递给webservice方法的参数, * 如果参数为空传new Object,不能传null,因为参数是一个object数组 */System.out.println(call.invoke(new Object小王);/* * 相当于setOperationName+invoke */System.out.println(call.invoke(new QName(url,add), new Object2,3);/* * 直接使用命名空间+调用的方法名+参数 */System.out.println(call.invoke(url, add, new Object3,4);/就介绍这几种,其它如果用到自己研究下吧 catch (ServiceException e) e.printStackTrace(); catch (RemoteException e) / TODO Auto-generated catch blocke.printStackTrace();同样可以通过浏览器输入http:/localhost:8080/axis/services/TestService?wsdl 查看wsdl文件1.3.4 取消发布的WebService取消已发布的webservice,编写wsdd文件,undeploy.wsdd文件内容:固定的 要取消的webservice名打开cmd-进入到axis的WEB-INF目录%TOMCAT_HOME%webapps/axis/WEB-INF进入目录后输入:java Djava

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论