




免费预览已结束,剩余15页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用Java编写简单的WebService实例 使用Axis编写WebService比较简单,就我的理解,WebService的实现代码和编写Java代码其实没有什么区别,主要是将哪些Java类发布为WebService。下面是一个从编写测试例子到发布WebService,以及编写测试代码的过程介绍。 本例子的WebService提供了两个方法,分别是sayHello和sayHelloToPerson,第一个只是返回一个Hello字符串,没有参数,第二个函数接受一个字符串作为参数,返回Hello 参数值,该例子比较简单,但是清楚的说明了从编写代码到发布为WebService以及测试编写好的WebService全过程。编写服务代码 服务代码提供了两个函数,分别为sayHello和sayHelloToPerson,源代码如下:Code/*/*Filename:HelloService.java*Version:v1.0*CreatedonAug2,20089:40:20AM*DesignedbyStephen*(c)Copyright2008*/packagecom.sinosoft.webservice;/*/*authorStephen*Testwebservice*/publicclassHelloService/*/*不带参数的函数*return返回Hello字符串*/publicStringsayHello()returnHello;/*/*带参数的函数*paramname*名称*return返回加上名称的欢迎词*/publicStringsayHelloToPerson(Stringname)if(name=null|name.equals()name=nobody;returnHello+name;发布WebService 要将上边写的HelloService类发布为WebService,需要先搭建Web应用。下面是在Tomcat下使用Axis创建WebService服务的例子。在Tomcat下创建Web应用 在该例子中,在Tomcat下创建了一个context path为ws的WEB应用。1. 在Tomcat的webapps下创建如下文件系统wsWEB-INFlibclasses2. 在WEB-INF文件夹下创建web.xml文件,该文件的内容如下:CodeApache-Axisorg.apache.axis.transport.http.AxisHTTPSessionListenerAxisServletApache-AxisServletorg.apache.axis.transport.http.AxisServletAdminServletAxisAdminServletorg.apache.axis.transport.http.AdminServlet100SOAPMonitorServiceSOAPMonitorServiceorg.apache.axis.monitor.SOAPMonitorServiceSOAPMonitorPort5001100AxisServlet/servlet/AxisServletAxisServlet*.jwsAxisServlet/services/*SOAPMonitorService/SOAPMonitor!-AdminServlet/servlet/AdminServlet-5wsdltext/xmlxsdtext/xmlindex.jspindex.htmlindex.jws在上面的web.xml中主要是配置了axis的相关配置。axis的相关配置在上述的web.xml文件中已经对axis进行了配置,但是还需要进行额外的配置。复制axis相关的jar文件将axis的相关jar文件复制到WEB-INFlib文件夹下。这些文件包括:activation.jaraxis.jaraxis-ant.jaraxis-schema.jarcommons-discovery-0.2.jarcommons-logging-1.0.4.jarjaxrpc.jarlog4j-1.2.8.jarmailapi.jarsaaj.jarwsdl4j-1.5.1.jarxmlsec-1.3.0.jar复制WebService服务主文件将HelloService.java编译后的class文件复制到WEB-INFclasses文件夹下,也就是说在WEB-INFclasses文件夹下的文件夹结构为:comsinosoftwebservice,在webservice文件夹下有一个helloservice.class文件。测试发布的Web应用启动Tomcat服务,打开IE浏览器,访问地址http:host:port/ws/services,如果看到如下界面就说明AXIS部署成功了。发布WebService发布WebService需要使用现有的AdminService来实现,这里我写了一个批处理文件来发布WebService,以后如果需要发布其他文件,只需要修改相应的参数就可以了。创建deploy.wsdd文件文件deploy.wsdd内容如下所示:Code创建发布WebService服务的批处理文件批处理文件deploywebservice.bat内容如下:Codejava-cpE:StephenLibaxislibactivation.jar;E:StephenLibaxislibaxis-ant.jar;E:StephenLibaxislibaxis-schema.jar;E:StephenLibaxislibaxis.jar;E:StephenLibaxislibcommons-discovery-0.2.jar;E:StephenLibaxislibcommons-logging-1.0.4.jar;E:StephenLibaxislibjaxrpc.jar;E:StephenLibaxisliblog4j-1.2.8.jar;E:StephenLibaxislibmailapi.jar;E:StephenLibaxislibsaaj.jar;E:StephenLibaxislibwsdl4j-1.5.1.jar;E:StephenLibaxislibxmlsec-1.3.0.jarorg.apache.axis.client.AdminClient-lhttp:/localhost:8090/ws/services/AdminServicedeploy.wsdd其中E:StephenLibaxislib是存放axis对应的jar文件的文件夹,现在将所有的jar文件都加入到classpath中进行执行。-l后的参数是本地要发布WebService的AdminService对应的访问地址。最后deploy.wsdd是对应的配置文件名称。发布WebService服务将deploy.wsdd文件和deploywebservice.bat文件复制到同一个文件夹下,执行deploywebservice.bat批处理文件,就可以将deploy.wsdd中描述的Java类发布为WebService。发布完成之后在访问http:/host:port/ws/services如下图所示:从上图可以看出,发布成功后,多了一个HelloServices的服务。这样就说明HelloService发布成功了。查看HelloServices的wsdl访问http:/host:port/ws/services/HelloServices?wsdl可以看到如下wsdl的内容:Code用Java调用WebService实例下面是用Java调用刚发布的WebService例子。Code/*Filename:TestHelloService.java*Version:v1.0*CreatedonAug2,20089:54:10AM*DesignedbyStephen*(c)Copyright2008*/.sinosoft.webservice;importjava.io.IOException;.MalformedURLException;space.QName;importjavax.xml.rpc.ServiceException;importorg.apache.axis.client.Call;importorg.apache.axis.client.Service;mons.logging.Log;mons.logging.LogFactory;/*authorStephen*测试调用WebService*/publicclassTestHelloServiceprivatestaticfinalLoglog=LogFactory.getLog(TestHelloService.class);privatestaticfinalStringHELLO_SERVICE_ENDPOINT=http:/localhost:8090/ws/services/HelloServices?wsdl;publicstaticvoidmain(Stringargs)TestHelloServicetester=newTestHelloService();/tester.callSayHello();tester.callSayHelloToPerson();publicvoidcallSayHello()tryServiceservice=newService();Callcall=(Call)service.createCall();call.setTargetEndpointAddress(.URL(HELLO_SERVICE_ENDPOINT);call.setOperationName(newQName(/,sayHello);call.setReturnType(org.apache.axis.Constants.XSD_STRING);tryStringret=(String)call.invoke(newObject);System.out.println(Thereturnvalueis:+ret);return;catch(IOExceptione)e.printStackTrace();catch(MalformedURLExceptione)e.printStackTrace();catch(ServiceExceptione)e.printStackTrace();log.error(callsayHelloserviceerror!);publicvoidcallSayHelloToPerson()tryServiceservice=newService();Callcall=(Call)service.createCall();call.setTargetEndpointAddress(.URL(HELLO_SERVICE_ENDPOINT);call.setOperationName(newQName(/,sayHelloToPerson);call.addParameter(name,org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);call.setReturnType(org.apache.axis.Constants.XSD_STRING);tryStringret=(String)call.invoke
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阿里地区2024-2025学年八年级上学期语文期中测试试卷
- 2025 年小升初成都市初一新生分班考试英语试卷(带答案解析)-(人教版)
- 江苏省徐州市2026届高三第一次质量检测数学试卷
- 社区网格长消防知识培训课件
- 内蒙古自治区包头市统编版2024-2025学年四年级下册期末考试语文试卷(含答案)
- 通信施工合同范本
- 工厂职工聘用合同范本
- 焊工应聘合同范本模板
- 酒吧酒水供货合同范本
- 香蕉购销合同范本简单
- 屁屁辅助脚本
- 物业费催费技巧(干货版)
- 高效沟通提升医药代表拜访技巧的五大秘诀
- 《环甲膜穿刺术》课件
- 2013年天津公务员考试职位表
- 医院处方笺模板(可根据实际需要修改)
- 《森林与小鸟》教学设计(福建省县级优课)-三年级音乐教案
- 提高口服药准确服用率品管圈课件
- 患者用药指导全国知识技能竞赛必备考试题库(带答案)
- 化学(医药卫生类)中职PPT完整全套教学课件
- 下腔静脉滤器置入与取出术
评论
0/150
提交评论