您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 利用Java编写简单的WebService实例
利用Java编写简单的WebService实例使用Axis编写WebService比较简单,就我的理解,WebService的实现代码和编写Java代码其实没有什么区别,主要是将哪些Java类发布为WebService。下面是一个从编写测试例子到发布WebService,以及编写测试代码的过程介绍。本例子的WebService提供了两个方法,分别是sayHello和sayHelloToPerson,第一个只是返回一个Hello字符串,没有参数,第二个函数接受一个字符串作为参数,返回Hello参数值,该例子比较简单,但是清楚的说明了从编写代码到发布为WebService以及测试编写好的WebService全过程。编写服务代码服务代码提供了两个函数,分别为sayHello和sayHelloToPerson,源代码如下:/**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下创建了一个contextpath为ws的WEB应用。1.在Tomcat的webapps下创建如下文件系统wsWEB-INFlibclasses2.在WEB-INF文件夹下创建web.xml文件,该文件的内容如下:?xmlversion=1.0encoding=ISO-8859-1?!DOCTYPEweb-appPUBLIC-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN*.jws/url-pattern/servlet-mappingservlet-mappingservlet-nameAxisServlet/servlet-nameurl-pattern/services/*/url-pattern/servlet-mappingservlet-mappingservlet-nameSOAPMonitorService/servlet-nameurl-pattern/SOAPMonitor/url-pattern/servlet-mapping!--uncommentthisifyouwanttheadminservlet--!--servlet-mappingservlet-nameAdminServlet/servlet-nameurl-pattern/servlet/AdminServlet/url-pattern/servlet-mapping--session-config!--Defaultto5minutesessiontimeouts--session-timeout5/session-timeout/session-config!--currentlytheW3ChaventsettledonamediatypeforWSDL;=WelcomeFileListwelcome-fileindex.jsp/welcome-filewelcome-fileindex.html/welcome-filewelcome-fileindex.jws/welcome-file/welcome-file-list/web-app在上面的web.xml中主要是配置了axis的相关配置。axis的相关配置在上述的web.xml文件中已经对axis进行了配置,但是还需要进行额外的配置。复制axis相关的jar文件将axis的相关jar文件复制到WEB-INF\lib文件夹下。这些文件包括: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-INF\classes文件夹下,也就是说在WEB-INF\classes文件夹下的文件夹结构为:com\sinosoft\webservice,在webservice文件夹下有一个helloservice.class文件。测试发布的Web应用启动Tomcat服务,打开IE浏览器,访问地址http:host:port/ws/services,如果看到如下界面就说明AXIS部署成功了。发布WebService发布WebService需要使用现有的AdminService来实现,这里我写了一个批处理文件来发布WebService,以后如果需要发布其他文件,只需要修改相应的参数就可以了。创建deploy.wsdd文件文件deploy.wsdd内容如下所示:?xmlversion=1.0encoding=UTF-8?deploymentxmlns=:java==HelloServicesprovider=java:RPCparametername=classNamevalue=com.sinosoft.webservice.HelloService/parametername=allowedMethodsvalue=*//service/deployment创建发布WebService服务的批处理文件批处理文件deploywebservice.bat内容如下:java-cpE:\Stephen\Lib\axislib\activation.jar;E:\Stephen\Lib\axislib\axis-ant.jar;E:\Stephen\Lib\axislib\axis-schema.jar;E:\Stephen\Lib\axislib\axis.jar;E:\Stephen\Lib\axislib\commons-discovery-0.2.jar;E:\Stephen\Lib\axislib\commons-logging-1.0.4.jar;E:\Stephen\Lib\axislib\jaxrpc.jar;E:\Stephen\Lib\axislib\log4j-1.2.8.jar;E:\Stephen\Lib\axislib\mailapi.jar;E:\Stephen\Lib\axislib\saaj.jar;E:\Stephen\Lib\axislib\wsdl4j-1.5.1.jar;E:\Stephen\Lib\axislib\xmlsec-1.3.0.jarorg.apache.axis.client.AdminClient-l其中E:\Stephen\Lib\axislib是存放axis对应的jar文件的文件夹,现在将所有的jar文件都加入到classpath中进行执行。-l后的参数是本地要发布WebService的AdminService对应
本文标题:利用Java编写简单的WebService实例
链接地址:https://www.777doc.com/doc-6440008 .html