webservice实例.doc_第1页
webservice实例.doc_第2页
webservice实例.doc_第3页
webservice实例.doc_第4页
webservice实例.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

software | PLSQL7.0中文使用手册 2009-12-23webService 实例文章分类:Java编程 使用Axis编写WebService比较简单,就我的理解,WebService的实现代码和编写Java代码其实没有什么区别,主要是将哪些Java类发布为WebService。下面是一个从编写测试例子到发布WebService,以及编写测试代码的过程介绍。 本例子的WebService提供了两个方法,分别是sayHello和sayHelloToPerson,第一个只是返回一个Hello字符串,没有参数,第二个函数接受一个字符串作为参数,返回Hello 参数值,该例子比较简单,但是清楚的说明了从编写代码到发布为WebService以及测试编写好的WebService全过程。 编写服务代码 服务代码提供了两个函数,分别为sayHello和sayHelloToPerson,源代码如下: Code /*/* * File name: HelloService.java * * Version: v1.0 * * Created on Aug 2, 2008 9:40:20 AM * * Designed by Stephen * * (c)Copyright 2008 */ package com.sinosoft.webservice; /* */* * author Stephen * * Test web service */ public class HelloService /* */* * 不带参数的函数 * * return 返回Hello字符串 */ public String sayHello() return Hello; /* */* * 带参数的函数 * * param name * 名称 * return 返回加上名称的欢迎词 */ public String sayHelloToPerson(String name) if (name = null | name.equals() name = nobody; return Hello + name; 发布WebService 要将上边写的HelloService类发布为WebService,需要先搭建Web应用。下面是在Tomcat下使用Axis创建WebService服务的例子。 在Tomcat下创建Web应用 在该例子中,在Tomcat下创建了一个context path为ws的WEB应用。 1. 在Tomcat的webapps下创建如下文件系统 ws WEB-INF lib classes 2. 在WEB-INF文件夹下创建web.xml文件,该文件的内容如下: Code Apache-Axis org.apache.axis.transport.http.AxisHTTPSessionListener AxisServlet Apache-Axis Servlet org.apache.axis.transport.http.AxisServlet AdminServlet Axis Admin Servlet org.apache.axis.transport.http.AdminServlet 100 SOAPMonitorService SOAPMonitorService org.apache.axis.monitor.SOAPMonitorService SOAPMonitorPort 5001 100 AxisServlet /servlet/AxisServlet AxisServlet *.jws AxisServlet /services/* SOAPMonitorService /SOAPMonitor !- AdminServlet /servlet/AdminServlet - 5 wsdl text/xml xsd text/xml index.jsp index.html index.jws 在上面的web.xml中主要是配置了axis的相关配置。 axis的相关配置 在上述的web.xml文件中已经对axis进行了配置,但是还需要进行额外的配置。 复制axis相关的jar文件 将axis的相关jar文件复制到WEB-INFlib文件夹下。这些文件包括: activation.jar axis.jar axis-ant.jar axis-schema.jar commons-discovery-0.2.jar commons-logging-1.0.4.jar jaxrpc.jar log4j-1.2.8.jar mailapi.jar saaj.jar wsdl4j-1.5.1.jar xmlsec-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内容如下: Code java -cp E: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.jar org.apache.axis.client.AdminClient -lhttp:/localhost:8090/ws/services/AdminService deploy.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 /* * File name: TestHelloService.java * * Version: v1.0 * * Created on Aug 2, 2008 9:54:10 AM * * Designed by Stephen * * (c)Copyright 2008 */ package .sinosoft.webservice; import java.io.IOException; import .MalformedURLException; import space.QName; import javax.xml.rpc.ServiceException; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import mons.logging.Log; import mons.logging.LogFactory; /* * author Stephen * * 测试调用WebService */ public class TestHelloService private static final Log log = LogFactory.getLog(TestHelloService.class); private static final String HELLO_SERVICE_ENDPOINT = http:/localhost:8090/ws/services/HelloServices?wsdl; public static void main(String args) TestHelloService tester = new TestHelloService(); / tester.callSayHello(); tester.callSayHelloToPerson(); public void callSayHello() try Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new .URL( HELLO_SERVICE_ENDPOINT); call.setOperationName(new QName(/, sayHello); call.setReturnType(org.apache.axis.Constants.XSD_STRING); try String ret = (String) call.invoke(new Object ); System.out.println(The return value is: + ret); return; catch (IOException e) e.printStackTrace(); catch (MalformedURLException e) e.printStackTrace(); catch (ServiceException e) e.printStackTrace(); log.error(call sayHello service error!); public void callSayHelloToPerson() try Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new .URL( HELLO_SERVICE_ENDPOINT); call.setOperationName(new QName(/, sayHelloToPerson); call.addParameter(name, org.apache.axis.Constants.XSD_STRING, javax.xml.rpc.ParameterMode.IN); call.setReturnType(org.apache.axis.Constants.XSD_STRING); try String ret =

温馨提示

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

评论

0/150

提交评论