欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    WebService之CXF开发.docx

    • 资源ID:14593111       资源大小:335.48KB        全文页数:20页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    WebService之CXF开发.docx

    1、WebService之CXF开发CXF开发指南Web Services、SOA简介:SOA 目前已经成为了人人皆知的热点,对分析人员来讲,SOA 重点需要加强对业务服务的分析;各种不同的服务是 SOA 的重要基础;ESB 则提供了一个舞台,让各种异构系统的业务服务在这里进行实际业务的展现、集成等。对开发人员来讲,如何更快速地创建出更稳定的业务服务组件是关键;应该更加深入领会使用面向接口的组件化开发方式;开发人员重点是保障服务的生命周期,其它的事情则让业务开发人员来做。SOA 的重点在于服务的重用,更高一级层次的重用则属于业务层次了。但是对于开发人员来说,重用的层次需要自己掌握与提升,从代码级到

    2、组件级、再到业务层次等。Web Services是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作。它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。Web Services更多是一种标准,而不是一种具体的技术,不同的平台、语言大都提供Web Services的开发实现。在java领域,Web Services的框架很多,例如:Axis、xfire、CXFCXF 简介关于 Apache CXFApache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式

    3、更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS 。这些

    4、Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多种传输协议上运行,比如:HTTP、JMS 或者 JBI,CXF 大大简化了 Services 的创建,同时它继承了 XFire 传统,一样可以天然地和 Spring 进行无缝集成。功能特性CXF 包含了大量的功能特性,但是主要集中在以下几个方面:1、 支持 Web Services 标准:CXF 支持多种 Web Services 标准,包含 SOAP、Basic Profile、WS-Addressing、WS-Policy、WS-ReliableMessaging

    5、 和 WS-Security。 2、 Frontends:CXF 支持多种“Frontend”编程模型,CXF 实现了 JAX-WS API (遵循 JAX-WS 2.0 TCK 版本),它也包含一个“simple frontend”允许客户端和 EndPoint 的创建,而不需要 Annotation 注解。CXF 既支持 WSDL 优先开发,也支持从 Java 的代码优先开发模式。 3、 容易使用: CXF 设计得更加直观与容易使用。有大量简单的 API 用来快速地构建代码优先的 Services,各种 Maven 的插件也使集成更加容易,支持 JAX-WS API ,支持 Spring

    6、2.0 更加简化的 XML 配置方式,等等。 4、 支持二进制和遗留协议:CXF 的设计是一种可插拨的架构,既可以支持 XML ,也可以支持非 XML 的类型绑定,比如:JSON 和 CORBA。 CXF 安装包下载及目录结构可以访问 Apache 站点下载 CXF 框架的安装包,下载时请选择“二进制发布包(Binary distribution)”,当然如果您有兴趣也可以下载相应版本的“源代码发布包(Source distribution)”。下载完成后,将下载的文件解压缩到任意的文件夹中,比如:C:/Java/CXF,在后面的章节中使用 %CXF_HOME% 表示 CXF 框架的存放目录,

    7、解压缩后形成的文件目录结构按名称排序如下:图 1、Apache CXF 发行包的目录结构示意图文件目录结构及相关文件的详细说明: bin(目录) bin 目录中是 CXF 框架中所提供的代码生成、校验、管理控制台工具:o Java to WSDL : java2wsdl o CXF Management Console Tool : mc o WSDL to Java : wsdl2java o WSDL to Service : wsdl2service o WSDL to SOAP : wsdl2soap o WSDL to XML : wsdl2xml o WSDL Validation

    8、 : wsdlvalidator o XSD to WSDL : xsd2wsdl docs(目录) CXF 所有类(class)对应的 API 文档,为开发者使用 CXF 完成应用开发提供应有的帮助。 etc(目录) 包含一个基本的 Service 暴露所需要的 web.xml 文件,及其它的配置文件。 lib(目录) lib 目录中包含 CXF 及其运行时所需要的和可选的第三方支持类包(.jar 文件),可以根据不同项目所需的 CXF 特性选择所需要的支持类包。如果不想一一去区分的话,可以直接在 Web 项目中包含所有的 CXF 及其运行时所需要的第三方支持类包(.jar 文件)即可。其中

    9、 cxf-2.0.2-incubator.jar 是 CXF 框架的二进制包文件,包含了全部的模块(modules),cxf-manifest-incubator.jar 是列表清单文件 manifest jar 。以下的 jar 包是所有 CXF 项目所必需的:o cxf.jar o commons-logging.jar o geronimo-activation.jar (Or the Sun equivalent) o geronimo-annotation.jar (Or the Sun equivalent) o geronimo-javamail.jar (Or the Sun

    10、equivalent) o neethi.jar o jaxb-api.jar o jaxb-impl.jar o stax-api.jar o XmlSchema.jar o wstx-asl.jar o xml-resolver.jar 对于 Java2WSDL 和 WSDL2Java,除了必需的之外,还需要再增加如下 jar 包:o jaxb-xjc.jar o veliocity.jar o velocity-dep.jar 为了支持 JAX-WS ,除了必需的之外,还需要再增加如下 jar 包:o jaxws-api.jar o saaj-api.jar o saaj-impl.ja

    11、r o asm.jar (可选的,但是可以提升包装类型的性能) 为了支持 XML 配置,除了必需的之外,还需要再增加如下 jar 包:o aopalliance.jar o spring-beans.jar o spring-context.jar o spring-core.jar o spring.web.jar 为了独立的 HTTP 服务支持,除了必需的之外,还需要再增加如下 jar 包:o geronimo-servlet.jar o jetty.jar o jetty-sslengine.jar o jetty-util.jar o sl4j.jar & sl4j-jdk14.jar

    12、 (可选的,但是可以提升日志 logging) 为了支持 Aegis ,除了必需的之外,还需要再增加如下 jar 包:o jaxen.jar o jdom.jar o stax-utils.jar 为了支持 WS-Security ,除了必需的之外,还需要再增加如下 jar 包:o bcprov-jdk14.jar o wss4j.jar o xalan.jar o xmlsec.jar 为了支持 HTTP Binding ,除了必需的之外,还需要再增加如下 jar 包:o jra.jar o jettison.jar (仅为 JSON 服务所需的) licenses(目录) 列表了引用第三方

    13、 jar 包的相关许可协议。 modules(目录) modules 目录中包含了 CXF 框架根据不同特性分开进行编译的二进制包文件。发布基于 CXF 框架的 Web 项目时,可以选择使用该目录下的所有 .jar 文件,也可以选择 lib 目录中的 cxf-2.0.2-incubator.jar 文件。 samples(目录) samples 目录中包含了所有随 CXF 二进制包发布的示例,包含这些示例的源代码和相关 Web 应用配置文件,可以方便地用 Ant 来编译运行测试这些示例,来了解 CXF 的开发和使用的方法。可以通过 samples 目录和它各个子目录下的 README.txt

    14、的文件来详细了解示例的编译与运行的步骤。 DISCLAIMER 由于仍是处于 Apache 孵化状态的项目,这里描述了一些说明。 LICENSE 文件中包含了 CXF 框架的授权协议 Apache License Version 2.0 。 NOTICE 罗列了 CXF 框架用到的相关第三方组件的授权协议以其它的相关信息。 README 文件中包含了 CXF 框架本身的一些简要说明。 release_notes.txt 包含了 CXF 发布时的一些信息,包括运行时所需要的环境,修复 BUG 的列表等。 CXF 框架支撑环境CXF 框架是一种基于 Servlet 技术的 SOA 应用开发框架,要

    15、正常运行基于 CXF 应用框架开发的企业应用,除了 CXF 框架本身之外,还需要 JDK 和 Servlet 容器的支持。JDK 版本选择、下载和安装CXF 支持非常多的特性,其中不同的特性对 JDK 版本的要求有所不同,但是 JDK 最低的版本是需要选择 JDK 5 或者以上版本。JDK 各版本均可以在 Sun 公司网站上下载,如何安装 JDK 请参考 SUN 公司的相关技术文档和 JDK 的帮助文档。为了运行 CXF 携带的 samples 目录下的所有示例,还需要 Apache Ant 1.6.5 或以上的版本。为了使用 CXF 的 WS-Security 特性,还需要 Bouncy C

    16、astle ,可以从网站下载,并增加到 CLASSPATH 中。Servlet 容器下载和安装CXF 是一种基于 Servlet 技术的 SOA 应用开发框架,需要 Servlet 容器的支持。CXF 支持在多种 Servlet 容器中运行,包括 WebSphere、WebLogic、Tomcat、Jetty 等。为了说明的简单,我们选择使用 Tomcat 5.5.25 和 Jetty 作为 CXF 的运行容器,所有配置过程和发布步骤的说明也均是针对 Tomcat 和 Jetty,如果读者使用 Tomcat 之外的其它 Servlet 容器或者选择了 Tomcat 的其它版本,下面的配置过程和

    17、步骤可能需要做出调整,请读者根据实际 Servlet 容器的帮助文档进行相应调整。Tomcat 与 Jetty 的各个版本均可以在网上下载,如何正确安装 Tomcat 与 Jetty 服务器请参考相关的帮助文档。想要对要对CXF有个初步的认识,体验一下利用 CXF 进行发布与使用 Web Services,可以去看一下samplesjava_first_pojo的这个例子,很简单的将pojo发布成WebService,并展示了在客户端调用。CXF运作代码如下:Server.java 中主要的代码片断如下,它利用 ServerFactoryBean 来进行 Web Services 的发布,实例

    18、化一个实现类 HelloWorldImpl,设置将要进行发布的地址 address,最后通过 ServerFactoryBean 的 create() 方法就成功地发布了 Web Services,如此简单而已,只有六行代码: HelloWorldImpl helloworldImpl = new HelloWorldImpl(); ServerFactoryBean svrFactory = new ServerFactoryBean(); svrFactory.setServiceClass(HelloWorld.class); svrFactory.setAddress(http:/lo

    19、calhost:9000/Hello); svrFactory.setServiceBean(helloworldImpl); svrFactory.create();Client.java 中的主要代码片断如下,通过 ClientProxyFactoryBean 代理工厂类来创建一个服务,绑定到 endPointAddress 地址,就可以 create 并得到服务,并进行服务消费了: ClientProxyFactoryBean factory = new ClientProxyFactoryBean(); factory.setServiceClass(HelloWorld.class)

    20、; factory.setAddress(http:/localhost:9000/Hello); HelloWorld client = (HelloWorld)factory.create(); System.out.println(Invoke sayHi().); System.out.println(client.sayHi(user);在这里不做过多介绍。CXF 应用开发下面就将开始我们的 CXF Web Services 的开发之旅!首先,要有一个基于 Eclipse 的开发环境;然后,我们将利用这个开发环境开发一个简单的“调查投票”示例,同时我们将解释一些 CXF 在开发中进行

    21、配置的基本方法。创建项目骨架启动 Eclipse,创建一个 Java Project,或者可以直接创建一个 J2EE 的 Web 项目,我们取名为 CXF_Spring_Survey,并设置编译的 output 路径为 WEB-INF/classes 目录,方便直接部署应用程序。目录结构如下图所示:图 2. 利用 CXF 开发 Web Services 的工程骨架示意图为了方便起见,我们直接拷贝 %CXF_HOME%/lib 目录下的所有 .jar 文件到 CXF_Spring_Survey 项目的 WEB-INF/lib 目录下,也可以根据前面“CXF 安装包”章节所述的各个 jar 包的作

    22、用范围选择仅需要的 .jar 文件。并在 CXF_Spring_Survey 项目属性里将这些 .jar 加到 Java Build Path 当中去。图 3. Eclipse 中引入所有 .jar 文件后的示意图这样,项目的基本骨架已经创建完成,接下来开始编写接口与具体实现的代码了。接口类创建在项目的 src 目录中新建一个 ws.cxf 包,并在里面创建接口类 ISurveyService.java,为了简单示示例起见,我们仅创建一个方法 public String vote(String username,int point); 这里要注意的是我们在接口上用 WebService 注解标

    23、明这是一个即将暴露为 Web Service 的接口,并将里面的方法都暴露出去。完整的接口代码清单如下:package ws.cxf;import javax.jws.WebService;WebServicepublic interface ISurveyService /* * param username 名字 * param point 分数 * return */ public String vote(String username,int point);接下来,我们根据接口的定义,来实现它。具体类实现针对接口的定义,我们创建一个相应的实现类,并将其定义在 sw.cxf.impl 包

    24、中,完整的代码清单如下:package ws.cxf.impl;import javax.jws.WebService;import ws.cxf.ISurveyService;WebServicepublic class SurveyService implements ISurveyService private String excludeName = Michael; private int leastPonit = 5; public String vote(String username,int point) String result = ; if(excludeName.equ

    25、als(username) result = 您不能重复进行投票!; else result = 谢谢您的投票!; if(point leastPonit) result += 您的投票分数太低!; else result += 您的投票分数通过审核!; return result; / For IoC public String getExcludeName() return excludeName; public void setExcludeName(String excludeName) this.excludeName = excludeName; public int getLea

    26、stPonit() return leastPonit; public void setLeastPonit(int leastPonit) this.leastPonit = leastPonit; 接口定义与具体的实现就这样简单完成了,接下来就是相关的配置工作了,首先进行 Spring 的 Bean 配置。Spring 配置在 src 目录中创建 beanRefServer.xml 文件,用来定义 Spring 的 Bean 的配置,CXF 支持 Spring 2.0 Schema 标签配置方式,并且提供快捷暴露 Web Services 的标签。首先,我们需要引入 Spring 与 CX

    27、F 的命名空间(namespace),如下:这样,我们可以使用 Spring 与 CXF 的标签配置了。接着,我们需要引入我们所需要的 CXF 的 Bean 定义文件,如下: 接着定义我们具体实现的 Bean ,这个 Bean 的定义与 Spring 普通的 Bean 定义是一样的: 最后,将定义的 Bean 暴露出去成为 Web Service 服务,通过 CXF 提供的 Schema 标签配置 ,这样定义的配置显得更加简洁与方便,定义如下: 在配置中,serviceClass 的值是我们的接口类的名称,address 为将要暴露出去的 Web Service 访问地址。比如:/SurveyWebService,那么客户端消费 Web Service 的地址就会成为 http:/host:port/WebAPPName/SurveyWebService ,与之相应的 WSDL 地址则为: http:/host:port/WebAPPName/SurveyWebService?wsdl 。Web 应用配置由于我们的示例是需要通过 Servlet 容器进行服务暴露,因此需要配置相对应的 web.xml 文件,首先是增加 Spring 的配置文件加载 Listener,如下: !- Spring Config Loca


    注意事项

    本文(WebService之CXF开发.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开