Java之Web服务开发方法论图解.docx

上传人:小飞机 文档编号:2011781 上传时间:2022-12-31 格式:DOCX 页数:49 大小:3.90MB
返回 下载 相关 举报
Java之Web服务开发方法论图解.docx_第1页
第1页 / 共49页
Java之Web服务开发方法论图解.docx_第2页
第2页 / 共49页
Java之Web服务开发方法论图解.docx_第3页
第3页 / 共49页
Java之Web服务开发方法论图解.docx_第4页
第4页 / 共49页
Java之Web服务开发方法论图解.docx_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《Java之Web服务开发方法论图解.docx》由会员分享,可在线阅读,更多相关《Java之Web服务开发方法论图解.docx(49页珍藏版)》请在三一办公上搜索。

1、Java之Web服务开发方法论图解邓宏贵(大庆油田物资公司信息中心,163453,denghg)摘 要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 Hong

2、Gui(The information center of Daqing Oilfield Materials Company, 163453, Email: denghg)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

3、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的一

4、种技术框架(架构),是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

5、两大开源项目的精华,提供了对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和I

6、n-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 Sta

7、te 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、JOn

8、AS、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也重新的深化了XF

9、ire和Celtix这两个开发工具。最主要的区别如下: 1.在特性方面: CXF可以方便地和Spring集成在一起,Axis2不行; Axis2支持多语言,除了Java版本,还有C/C+版本。2.在开发方面: Axis2更像一个微型服务器。Axis2被打包成一个WAR,部署到任何Servlet容器中,是为了更方便地在运行中管理和部署服务而进行的专门设计。 CXF更专注于对开发人员友好及可嵌入性,大部分配置只需使用API即可完成,与Spring紧密集成。CXF强调代码优先的服务开发模式。在要求身份验证安全环境中部署,还存在着某些障碍。1.3如何抉择1、如果应用程序需要多语言的支持,Axis2 应

10、当是首选了; 2、如果应用程序是遵循 Spring 哲学路线的话,Apache CXF 是一种更好的选择,特别对嵌入式的 Web Services 来说。2 Web服务开发方法下面分别就其开发方法进行图文并茂讲解。首先是Axis2,然后是CXF。2.1环境配置(1)下载并安装Tomcat下载地址:http:/archive.apache.org/dist/tomcat/比如:apache-tomcat-6.0.37.exe,直接运行该程序,默认安装即可。(2)下载并安装Axis2下载地址:Axis2完整版:参考http:/axis.apache.org/axis2/java/core/docs

11、/installationguide.html进行安装。(3)Axis2与Tomcat集成下载Axis2的Web应用程序包:(4)下载并安装Eclipse下载:http:/www.eclipse.org/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

12、与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:

13、”指定“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)使用Axis

14、2创建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 log

15、in-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.图形界

16、面操作如下图所示: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.ge

17、tMethodResult();2.4使用Axis2 Eclipse Plug-in插件Axis2 Eclipse Plug-in也可以完成上述操作,方法如下:(1)下载Axis2 Eclipse插件:网站http:/axis.apache.org/axis2/java/core/tools/index.html下载:http:/www.apache.org/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/1.6.2/axis2-eclipse-service-plugin-1.6.2.zip(用来将服务代码打包成后缀名为.aar文件的插件)。http

18、:/www.apache.org/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子目录(没有就创建它)下,编写如下:

19、重启Eclipse后,即可看到下图所示:(3)使用Axis2 Service Archiver将Java方法发布成Web服务此处一定要书写正确!否则在最后步骤时出现“class not found”错误,创建服务文档失败!“Include .class files only”选项随意。如果需要添加外部*.jar,比如数据库连接包,在此处添加。在此处自定义服务名,以及选择要创建服务文档的类及其中的方法。服务文档*.aar文件存放的位置。一般放在图中所示位置。(4)验证发布是否成功1.重启应用服务器Tomcat。2.浏览器URL地址栏输入:此图所示内容出现,即表示发布成功!-(5)使用Axis2

20、Code Generator生成客户端配置首先确认项目切面配置是否与Axis2关联:然后再:展开Java Resources并刷新:出现上图所示,即表示生成客户端配置成功。-(6)客户端调用方法与前面相似,不同之处在于Web服务之方法独立于xxxStub,分别实例化即可。2.5使用CXF开发Web服务下载并安装CXFCXF完整版:http:/www.apache.org/dyn/closer.cgi?path=/CXF/3.0.2/apache-CXF-3.0.2.zip安装方法参考Axis2。(1)Eclipse与CXF整合1.修改Eclipsec初始化文件Eclipse.ini的参数,追加

21、:-Dorg.osgi.framework.bootdelegation=*不添加此项,在此处无法继续:2.参考Eclipse与Axis2整合。(2)Web服务开发及远程调用参考Axis22.6使用CXF Eclipse Plug-in插件(1)安装SOA tool1.插件下载地址:2.在Eclipse安装目录下的dropins目录里,创建一个stp-all子目录。3.将上述下载的*.zip包里的eclipse解压到stp-all子目录里,目录结构:4.在Eclipse安装目录下的links(没有则创建它)目录里,编辑link文件,比如stp-eclipse-plugin.link,内容如下:

22、%Eclipse-Home%dropinsstp-all5.命令行启动Eclipse(以后鼠标点击启动即可)%Eclipse-Home%bineclipse clean出现下图所示,表示安装成功:(2)使用SOA tool整合Eclipse与CXF(3)应用开发1.创建Dynamic Web Project项目2.创建一个服务器端类,并编写方法3.指定要创建Web服务的类4.生成所有JAX-WS5.测试客户端5.1. 实现CXFNonSpringServlet的servlet5.2调整客户端测试程序6.给客户端程序添加访问授权凭证2.7技巧调用远程非Java的WSDL,如果使用IDE无法正常进行的话,请使用命令行操作:%Axis2-Home%|%CXF-Home%binwsdl2java fe jaxws21 client p 包名 d java文件路径 wsdlLocation wsdlURL noAddressBinding wsdlURL3结论从图解步骤分析来看,使用Axis2或CXF开发Java Web服务,确实简单、明了、灵活、安全。参考文献:1Apache官网:http:/www.apache.org2百度百科

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号