Webservice调用框架_第1页
Webservice调用框架_第2页
Webservice调用框架_第3页
Webservice调用框架_第4页
Webservice调用框架_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、Webservice调用框架1. Webservice部署1.1 Apache Axis2Apache Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。Axis2是广泛使用Apache Axis栈的成功典范,不仅支持SOAP1.1和 SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON等技术。1.1.1 Apache Axis2下载与安装目前最新的版本是1.5.3,可从/axis2/java/core/下载最新版本。笔者使用的版本是1.5.2,下载axis2-1.5.

2、2-bin.zip和axis2-1.5.2-war.zip这两个包。其中axis2-1.5.2-bin.zip文件中包含了Axis2中所有的jar文件,axis2-1.5.2-war.zip文件用于将WebService发布到Web容器中。将axis2-1.5.2-war.zip文件解压到相应的目录,将目录中的axis2.war文件放到<Tomcat安装目录>webapps目录中(本文使用的Tomcat的版本是6.x),并启动Tomcat。在浏览器地址栏中输入如下的URL:http:/localhost:8080/axis2/,如浏览器显示如图1所示页面,则说明Axis2安装成功。

3、图1 Axis2主页面1.1.2 编写和发布WebService使用Apache Axis2发布WebService有两种方式,一种是POJO方式,一种是使用services.xml发布WebService。 POJO方式在Axis2中不需要进行任何的配置,就可以直接将一个简单的POJO发布成WebService。其中POJO中所有的public方法将被发布成WebService方法。1. 首先编写一个简单的POJO,代码如下:在SimpleService类中有两个方法,由于这两个方法都是public方法,因此,它们都将作为WebService方法被发布。2. 编译SimpleS

4、ervice类后,将SimpleService.class文件放到<Tomcat安装目录>webappsaxis2WEB-INFpojo目录中(如果没有pojo目录,则建立该目录)。现在我们已经成功将 SimpleService类发布成了WebService。在浏览器地址栏中输入如下的URL:http:/localhost:8080/axis2/services/listServices。这时当前页面将显示所有在Axis2中发布的WebService,如图2所示。图2 Axis2发布的WebService在使用POJO方式发布WebService时应注意如下几点:1. POJO类不

5、能使用package关键字声明包。2. Axis2在默认情况下可以热发布WebService,也就是说,将WebService的.class文件复制到pojo目录中时,Tomcat不需要重新启动就可以自动发布WebService。如果想取消Axis2的热发布功能,可以打开<Tomcat安装目录>webappsaxis2WEB-INFconfaxis2.xml,找到如下的配置代码:<parametername="hotdeployment">true</parameter>,将true改为false即可。3. 要注意的是,Axis2在默认情

6、况下虽然是热发布,但并不是热更新,也就是说,一旦成功发布了 WebService,再想更新该WebService,就必须重启Tomcat。这对于开发人员调试WebService非常不方便,因此,在开发 WebService时,可以将Axis2设为热更新。在axis2.xml文件中找到<parameter name="hotupdate">false</parameter>,将false改为true即可。4. 发布WebService的pojo目录只是默认的,如果想在其他目录发布WebService,可以打开axis2.xml文件,并在<axis

7、config>元素中添加如下的子元素:<deployerextension=".class"directory="my"class="org.apache.axis2.deployment.POJODeployer"/>。上面的配置允许在<Tomcat安装目录>webappsaxis2WEB-INFmy目录中发布WebService。例如,将本例中的SimpleService.class复制到my目录中也可以成功发布(但要删除pojo目录中的SimpleService.class,否则产生重名现象)。1.

8、1.2.2 使用services.xml发布WebService使用该种方式,允许在Axis2中发布带包的POJO类。1. 首先编写如下JAVA代码:2. 编译SimpleService.java生成SimpleService.class文件。3. 创建services.xml文件,指定服务名,设置处理webservice方法的处理器,具体代码如下所示:其中 <service>元素用于发布 Web Service,一个 <service>元素只能发布一个 WebService类,name属性表示 WebService名。<description>元素表示当前

9、 Web Service的描述,<parameter>元素用于设置 WebService的参数,在这里用于设置 WebService对应的类名。在这里最值得注意的是 <messageReceivers>元素,该元素用于设置处理 WebService方法的处理器。例如,getGreeting方法有一个返回值,因此需要使用可处理输入输出的 RPCMessageReceiver类。当方法没有返回值时,需要使用只能处理输入的 RPCInOnlyMessageReceiver类。4. 创建任意文件目录,构建目录结构如下:serviceSimpleService.classMETA

10、-INFservices.xml。5. 打开CMD控制台,进入上述文件目录,输入命令:jar cvf SimpleService.aar .,生成aar文件。将SimpleService.aar文件复制到 <Tomcat安装目录>webappsaxis2WEB-INFservices目录中,启动 Tomcat后,就可以调用这个名称为SimpleService的WebService了。1.2 Apache CXFApache CXF = Celtix + XFire,Apache CXF的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,以下简

11、称为 CXF。CXF 继承了Celtix 和XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding、DataBinding、Transport以及各种Format的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。Apache CXF已经是一个正式的Apache顶级项目。1.2.1 Apache CXF下载目前Apache CXF最近版本为2.3.0,可从/download.html下载apach

12、e-cxf-2.3.0.zip和apache-cxf-2.3.0-src.zip。1.2.2 使用CXF发布WebService1. 使用MyEclipse新建一个Web工程CxfService,将apache-cxf-2.3.0.zip中lib目录下的包导入到工程中。2. 创建一个接口类HelloWorld,代码如下:3. 创建接口的实现类HelloWorldImpl,代码如下:其中,WebService用于申明为webservice的注解,endpointInterface用于指定要暴露的接口类,serviceName用于指定服务名。4. 在WEB-INF目录下新建beans.xml,如下

13、:其中,implementor用于指定接口类的实现类,address要和注释里面的服务名对应。5. 修改web.xml文件,如下:6. 启动Tomcat,在浏览器中输入http:/localhost:8080/CxfService/services/,如果如图3所示页面,则说明服务器端配置成功。图3 CXF Services或者输入http:/localhost:8080/CxfService/services/HelloWorld?wsdl,出现WSDL文档,则说明服务器端配置成功。1.3 Oracle WebLogic使用MyEclipse可以轻松地创建WebService,并部署到Web

14、Logic服务器中。1.3.1 基于XFile架构部署WebService1. 创建一个Web Service Project,选择XFile作为基础框架,并选择J2EE 1.4。2. 制作一个WebService服务端,右击工程->New->Other->MyEclipse->Web Services->Web Service。选择从一个Class 创建Web Service,并创建一个新的Java Bean。完成后,在Java文件中写入想要实现的代码。3. 将工程部署到WebLogic中,运行WebLogic。4. 访问http:/<servername

15、>:<port>/<project name >/services/查看是否部署成功。1.3.2 基于JAX-WS架构部署WebService1. 创建一个Web Project。2. 在工程中创建想要实现的类,添加代码。3. 制作一个WebService服务端,右击工程->New->Other->MyEclipse->Web Services->Web Service。选择JAX-WS架构,选择从一个Class 创建Web Service。选择上部中实现的类,并指定Service name。4. 将工程部署到WebLogic中,运行

16、WebLogic。5. 访问http:/ <servername>:<port>/<project name>/<Service name>查看是否部署成功。2. WebService调用1. JAVA平台:使用JDK提供的wsimport命令,针对WSDL文件生成客户端代码。该客户端其实是一系列封装好的类,实现对Webservice的调用。开发人员没必要去了解客户端是如何工作的,只需要调用客户端相应的接口即可:wsimport s <code directory> <WSDL-URI>。2. .Net平台:在工程中添加web引用,输入WSDL的URI,该web引用实现了对Webservice的调用。开发人员没必要去了解web引用是如何工作的,只需要调用web引用相应的接口即可。3. 根据上述两种情况,根据相

温馨提示

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

评论

0/150

提交评论