Java之Web服务开发方法论图解.doc_第1页
Java之Web服务开发方法论图解.doc_第2页
Java之Web服务开发方法论图解.doc_第3页
Java之Web服务开发方法论图解.doc_第4页
Java之Web服务开发方法论图解.doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

Java之Web服务开发方法论图解邓宏贵(大庆油田物资公司信息中心,163453,)摘 要Java作为可扩展的开发平台备受开发者青睐,在其上开发Web服务(以下简称Web Service)的方法犹如雨后春笋般层出不穷,尤以Apache软件组织的两个子项目Axis2和CXF作为实现Web Service的技术框架最为突出。本文将以图文并茂的方式详解使用Axis2或CXF开发Web Service的方法及步骤。关键词Web Service、Axis2、CXF、SOAPThe schematic of Java Web service developing methodDENG HongGui(The information center of Daqing Oilfield Materials Company, 163453, Email: )AbstractJava as the extensible development platform has been favoured by developer, there are many ways that like bamboo shoots after a spring rain to develop Web services on it, Especially in the two sub project of the Apache software organization Axis2 and CXF as a technology framework in Web Service is the most many. This paper will be illustrated the way in order to explain method using Axis2 or CXF development Web Service and step.KeywordsWeb Service、Axis2、CXF、SOAP1概述Axis2读音 kss tu。Axis2是实现Web Service的一种技术框架(架构),是Axis的后续版本,是新一代的SOAP引擎。Axis2 基于新的体系结构进行了全新编写,是为了探寻模块化更强、灵活性更高和更有效的体系结构。这种体系结构可以很容易地插入到其他相关Web 服务标准和协议(如 WS-Security、WS-ReliableMessaging 等)的实现中。CXF = Celtix + XFire,开始叫Apache Celti Xfire,后来更名为Apache CXF了,简称为 CXF。CXF也是一种实现Web Service的技术框架(架构),利用Frontend编程API来构建和开发Services。CXF继承了Celtix和XFire两大开源项目的精华,提供了对JAX-WS全面的支持,并且提供了多种Binding、DataBinding、Transport以及各种Format的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者WSDL优先(WSDL First)来轻松地实现Web Services的发布和使用。百度百科1.1主要特点(1)Axis2:l 采用名为AXIOM(AXIs Object Model)的新核心XML(标准通用标记语言的子集)处理模型,利用新的XML解析器提供的灵活性按需构造对象模型。l 支持不同的消息交换模式。目前Axis2支持三种模式:In-Only、Robust-In和In-Out。 In-Only消息交换模式只有SOAP请求,而不需要应答; Robust-In消息交换模式发送SOAP请求,只有在出错的情况下才返回应答; In-Out消息交换模式总是存在SOAP请求和应答。l 提供阻塞和非阻塞客户端API。l 支持内置的Web服务寻址(WS-Addressing)。l 灵活的数据绑定,可以选择直接使用AXIOM,使用与原来的Axis相似的简单数据绑定方法,或使用XMLBeans、JiBX或JAXB2.0等专用数据绑定框架。l 新的部署模型,支持热部署。l 支持HTTP,SMTP,JMS,TCP传输协议。l 支持REST(Representational State Transfer)。百度百科l 将Java要公开的方法发布成Web Service。l 调用任意语言发布的Web服务。l 与第三方安全认证体系无缝衔接。l 使用简单、操作方便。作者(2)CXF:l 轻量级容器:可在 Tomcat 或基于 Spring 的容器中部署 Services;l 集成 JBI:可以在如 ServiceMix, OpenESB or Petals 等等的 JBI 容器中将它部署为一个服务引擎;l 集成 SCA:可以部署在如 Tuscany 之类的 SCA 容器中;l 集成 J2EE:可以在 J2EE 应用服务器中部署 Services,比如:Geronimo、JOnAS、JBoss、WebSphere Application Server 和 WebLogic Application Server,以及 Jetty 和 Tomcat;l 独立的 Java 客户端/服务器。u 百度百科l 将Java要公开的方法发布成Web Service;l 使用简单、操作方便。u 作者1.2主要区别两者都是Apache孵化器下面的Web Service开源开发工具,从已有的开源项目发展起来的。Axis2是从Axis1.x系列发展而来;CXF则是XFire和Celtix项目相结合的产品。Axis2是从底层全部重新实现,使用了新的扩展性更好模块架构;CXF也重新的深化了XFire和Celtix这两个开发工具。最主要的区别如下: 1.在特性方面: CXF可以方便地和Spring集成在一起,Axis2不行; Axis2支持多语言,除了Java版本,还有C/C+版本。2.在开发方面: Axis2更像一个微型服务器。Axis2被打包成一个WAR,部署到任何Servlet容器中,是为了更方便地在运行中管理和部署服务而进行的专门设计。 CXF更专注于对开发人员友好及可嵌入性,大部分配置只需使用API即可完成,与Spring紧密集成。CXF强调代码优先的服务开发模式。在要求身份验证安全环境中部署,还存在着某些障碍。1.3如何抉择1、如果应用程序需要多语言的支持,Axis2 应当是首选了; 2、如果应用程序是遵循 Spring 哲学路线的话,Apache CXF 是一种更好的选择,特别对嵌入式的 Web Services 来说。2 Web服务开发方法下面分别就其开发方法进行图文并茂讲解。首先是Axis2,然后是CXF。2.1环境配置(1)下载并安装Tomcat下载地址:/dist/tomcat/比如:apache-tomcat-6.0.37.exe,直接运行该程序,默认安装即可。(2)下载并安装Axis2下载地址:Axis2完整版:/apache/axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip参考/axis2/java/core/docs/installationguide.html进行安装。(3)Axis2与Tomcat集成下载Axis2的Web应用程序包:/apache/axis/axis2/java/core/1.6.2/axis2-1.6.2-war.zip。再将包内axis2.war解压到%Tomcat-Home%webapps子目录,重启Tomcat即可。浏览器URL地址栏输入:http:/localhost:8080/axis2,出现下图所示,表示集成成功。(4)下载并安装Eclipse下载:/downloads/download.php?file=/technology/epp/downloads/release/luna/SR1/eclipse-jee-luna-SR1-win32-x86_64.zip安装:将下载得到的*.zip直接解压到指定的路径下即可。比如:C:Program FilesEclipse IDE for Java EE Developers(5)Eclipse与Axis2整合1运行Eclipse IDEf or Java EE Developers2点击菜单栏中的Window之Preferences选项。如下图:3鼠标向下滑动左边滚动条,找到“Web Services”,鼠标点击将其展开,再点击“Axis2 Preferences”,通过右边“Browse”钮,为“Axis2 runtime location:”指定Axis2安装位置所在的目录。如下图:4找到“Server and Runtime”,鼠标点击将其展开,为“Server runtime:”指定服务器“Tomcat v6.0 server”;为“Web service runtime:”指定“Apache Axis2”。如下图:(6)Eclipse与Tomcat、Java整合点击图中红色标记处:点击展开:再点击,比如,继续点击:点击后:2.2使用Axis2开发Web服务(1)创建Dynamic Web Project项目输入项目名称(随意),指定项目运行服务器环境,比如Apache Tomcat v6.0;指定Dynamic Web module version,比如2.5版本;修改Project Facets configuration为新配置的Axis2 Web Services Project v1.6.2。如下组图:(2)创建一个服务器端类编写方法(3)使用Axis2创建Web服务文档如果不成功,则删除已生成的客户端项目:清理Tomcat工作空间:重启Eclipse后重建Web服务文档步骤:(4)测试客户端(5)给服务端添加基本身份认证1.修改tomcat server用户访问权限配置文件conftomcat-users.xml:2.给应用项目WEB-INFweb.xml文件添加安全约束段:其中:l security-constraint元素包含一个或多个web-resource-collection元素,它是描述Web应用程序中的哪些web资源受到指定安全限制的保护。l auth-constraint元素用于描述允许访问Web组件的安全角色。l login-config元素用来认证用户,并确认该用户是否为正确的角色。l auth-method元素用来指定认证方法,BASIC是一种常见的Web认证方式,浏览器给用户提示一个对话框,要求输入用户名和密码,随后Tomcat将给出的用户名和密码与tomcat-users.xml中的用户名和密码进行比较,然后使用前面的security-constraint配置来确定用户是否可访问受保护的servlet。(6)给客户端程序添加访问授权凭证(7)测试客户端安全验证获得100.0运行结果,宣告测试成功。2.3使用Axis2调用远程Web服务(1)依据远程Web服务公布的WSDL文件,生成客户端配置1.图形界面操作如下图所示:2.命令行操作:在%Axis2_Home%bin目录下:wsdl2java uri wsdl地址 p 包名-o java项目根目录在src包名下生成2个Java文件:xxxCallbackHandler.javaxxxStub.java(2)客户端调用xxxStubserver=newxxxStub();xxxStub.Methodrequest=newxxxStub.Method();request.setParameter(value);xxxStub.MethodResponseresp=server.method(request);system.out(resp.getMethodResult();2.4使用Axis2 Eclipse Plug-in插件Axis2 Eclipse Plug-in也可以完成上述操作,方法如下:(1)下载Axis2 Eclipse插件:网站/axis2/java/core/tools/index.html下载:/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/1.6.2/axis2-eclipse-service-plugin-1.6.2.zip(用来将服务代码打包成后缀名为.aar文件的插件)。/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/1.6.2/axis2-eclipse-codegen-plugin-1.6.2.zip(用来将服务代码生成wsdl文件以及解析将wsdl文件生成客户端代码的插件)。(2)安装Axis2 Eclipse插件:解压上述2个*.zip文件到Eclipse IDE for Java EE Developers根目录之dropinsplugins子目录下;并在Eclipse IDE for Java EE Developers根目录之links子目录(没有就创建它)下,编写如下:重启Eclipse后,即可看到下图所示:(3)使用Axis2 Service Archiver将Java方法发布成Web服务此处一定要书写正确!否则在最后步骤时出现“class not found”错误,创建服务文档失败!“Include .class files only”选项随意。如果需要添加外部*.jar,比如数据库连接包,在此处添加。在此处自定义服务名,以及选择要创建服务文档的类及其中的方法。服务文档*.aar文件存放的位置。一般放在图中所示位置。(4)验证发布是否成功1.重启应用服务器Tomcat。2.浏览器URL地址栏输入:此图所示内容出现,即表示发布成功!-(5)使用Axis2 Code Generator生成客户端配置首先确认项目切面配置是否与Axis2关联:然后再:展开Java Resources并刷新:出现上图所示,即表示生成客户端配置成功。-(6)客户端调用方法与前面相似,不同之处在于Web服务之方法独立于xxxStub,分别实例化即可。2.5使用CXF开发Web服务下载并安装CXFCXF完整版:/dyn/closer.cgi?path=/CXF/3.0.2/apache-CXF-3.0.2.zip安装方法参考Axis2。(1)Eclipse与CXF整合1.修改Eclipsec初始化文件Eclipse.ini的参数,追加:-Dorg.osgi.framework.bootdelegation=*不添加此项,在此处无法继续:2.参考Eclipse与Axis2整合。(2)Web服务开发及远程调用参考Axis22.6使用CXF Eclipse Plug-in插件(1)安装SOA tool1.插件下载地址:/eclipse/stp/old-downloads-page/stp-al

温馨提示

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

评论

0/150

提交评论