ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:450.52KB ,
资源ID:19075886      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19075886.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(apachecxf研究.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

apachecxf研究.docx

1、apachecxf研究Apache CXF研究 3一、 文档简介 31. 内容: 32. 目标: 3二、 Apache CXF 服务框架的基本知识 31. 关于 Apache CXF 32. 功能特性 33. 下载及目录结构 44. CXF 框架支撑环境 85. JDK 版本选择、下载和安装 86. Servlet 容器下载和安装 8三、 CXF 服务的发布与消费 81. 配置环境变量(windows): 82. 通过 Ant 来构建和运行示例 93. 体验改变 104. 构建和运行在 Servlet 容器里的示例 11四、 ApacheCXF应用开发 131. 开发环境准备 132. 创建项

2、目骨架 133. 接口类创建 134. 具体实现类 145. Spring 配置 146. Web 应用配置 167. 应用部署 178. 启动服务 179. 消费服务 17五、 CXF 解析 191、体系结构 202.How service calls are processed 213、对象组织关系及运作流程 26六、拦截器与Feature 38本地服务(私有服务) 40七、知识点: 41八、参考资料 41Apache CXF研究一、 文档简介cxf版本:2.x1. 内容:1、Apache CXF 服务框架的基本知识2、用自带的例子来初步体验通过 CXF 进行服务的发布与消费3、搭建基于

3、Eclipse 的 Apache CXF 开发环境4、示例CXF 整合 Spring 2.0 的基本开发过程5、CXF源码研究2. 目标:掌握 Apache CXF 的基本知识,可以用 CXF 编写基本的 Web Services,并且能够增加自己的业务逻辑,从而开发满足自己需求的 Web Services 应用,最重要的是学会与 Spring 2.0 框架的无缝整合,快速轻松地实现服务的发布与消费。二、 Apache CXF 服务框架的基本知识1. 关于 Apache CXFApache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfi

4、re,现在已经正式更名为 Apache CXF 了,以下简称为 CXF。2. 功能特性1、 支持 Web Services 标准:CXF 支持多种 Web Services 标准,包含 SOAP、Basic Profile、WS-Addressing、WS-Policy、WS-ReliableMessaging 和 WS-Security。 2、 Frontends:CXF 支持多种“Frontend”编程模型,CXF 实现了 JAX-WS API (遵循 JAX-WS 2.0 TCK 版本),它也包含一个“simple frontend”允许客户端和 EndPoint 的创建,而不需要 An

5、notation 注解。CXF 既支持 WSDL 优先开发,也支持从 Java 的代码优先开发模式。 3、 容易使用: CXF 设计得更加直观与容易使用。有大量简单的 API 用来快速地构建代码优先的 Services,各种 Maven 的插件也使集成更加容易,支持 JAX-WS API ,支持 Spring 2.0 更加简化的 XML 配置方式,等等。 4、 支持二进制和遗留协议:CXF 的设计是一种可插拨的架构,既可以支持 XML ,也可以支持非 XML 的类型绑定,比如:JSON 和 CORBA。3. 下载及目录结构http:/cxf.apache.org/download.html可下

6、载二进制及源码发布包,使用只需二进制包:1. bin(目录) bin 目录中是 CXF 框架中所提供的代码生成、校验、管理控制台工具:Java to WSDL : java2wsdl CXF Management Console Tool : mc WSDL to Java : wsdl2java WSDL to Service : wsdl2service WSDL to SOAP : wsdl2soap WSDL to XML : wsdl2xml WSDL Validation : wsdlvalidator XSD to WSDL : xsd2wsdl 2. docs(目录) CXF

7、所有类(class)对应的 API 文档,为开发者使用 CXF 完成应用开发提供应有的帮助。3. etc(目录) 包含一个基本的 Service 暴露所需要的 web.xml 文件,及其它的配置文件。4. lib(目录) lib 目录中包含 CXF 及其运行时所需要的和可选的第三方支持类包(.jar 文件),可以根据不同项目所需的 CXF 特性选择所需要的支持类包。如果不想一一去区分的话,可以直接在 Web 项目中包含所有的 CXF 及其运行时所需要的第三方支持类包(.jar 文件)即可。其中 cxf-2.0.2-incubator.jar 是 CXF 框架的二进制包文件,包含了全部的模块(m

8、odules),cxf-manifest-incubator.jar 是列表清单文件 manifest jar 。以下的 jar 包是所有 CXF 项目所必需的:cxf.jar commons-logging.jar geronimo-activation.jar (Or the Sun equivalent) geronimo-annotation.jar (Or the Sun equivalent) geronimo-javamail.jar (Or the Sun equivalent) neethi.jar jaxb-api.jar jaxb-impl.jar stax-api.ja

9、r XmlSchema.jar wstx-asl.jar xml-resolver.jar 对于 Java2WSDL 和 WSDL2Java,除了必需的之外,还需要再增加如下 jar 包:jaxb-xjc.jar veliocity.jar velocity-dep.jar 为了支持 JAX-WS ,除了必需的之外,还需要再增加如下 jar 包:jaxws-api.jar saaj-api.jar saaj-impl.jar asm.jar (可选的,但是可以提升包装类型的性能) 为了支持 XML 配置,除了必需的之外,还需要再增加如下 jar 包:aopalliance.jar spring

10、-beans.jar spring-context.jar spring-core.jar spring.web.jar 为了独立的 HTTP 服务支持,除了必需的之外,还需要再增加如下 jar 包:geronimo-servlet.jar jetty.jar jetty-sslengine.jar jetty-util.jar sl4j.jar & sl4j-jdk14.jar (可选的,但是可以提升日志 logging) 为了支持 Aegis ,除了必需的之外,还需要再增加如下 jar 包:jaxen.jar jdom.jar stax-utils.jar 为了支持 WS-Security

11、 ,除了必需的之外,还需要再增加如下 jar 包:bcprov-jdk14.jar wss4j.jar xalan.jar xmlsec.jar 为了支持 HTTP Binding ,除了必需的之外,还需要再增加如下 jar 包:jra.jar jettison.jar (仅为 JSON 服务所需的) 5. licenses(目录) 列表了引用第三方 jar 包的相关许可协议。6. modules(目录) modules 目录中包含了 CXF 框架根据不同特性分开进行编译的二进制包文件。发布基于 CXF 框架的 Web 项目时,可以选择使用该目录下的所有 .jar 文件,也可以选择 lib 目

12、录中的 cxf-2.0.2-incubator.jar 文件。7. samples(目录) samples 目录中包含了所有随 CXF 二进制包发布的示例,包含这些示例的源代码和相关 Web 应用配置文件,可以方便地用 Ant 来编译运行测试这些示例,来了解 CXF 的开发和使用的方法。可以通过 samples 目录和它各个子目录下的 README.txt 的文件来详细了解示例的编译与运行的步骤。 8. LICENSE 文件包含了 CXF 框架的授权协议 Apache License Version 2.0 。 9. NOTICE 文件罗列了 CXF 框架用到的相关第三方组件的授权协议以其它的

13、相关信息。 10. README 文件中包含了 CXF 框架本身的一些简要说明。 11. release_notes.txt 文件包含了 CXF 发布时的一些信息,包括运行时所需要的环境,修复 BUG 的列表等。 4. CXF 框架支撑环境CXF 框架是一种基于 Servlet 技术的 SOA 应用开发框架,要正常运行基于 CXF 应用框架开发的企业应用,除了 CXF 框架本身之外,还需要 JDK 和 Servlet 容器的支持。5. JDK 版本选择、下载和安装JDK 最低的版本是需要选择 JDK 5 或者以上版本,为了运行 CXF 携带的 samples 目录下的所有示例,还需要 Apac

14、he Ant 1.6.5 或以上的版本。为了使用 CXF 的 WS-Security 特性,还需要 Bouncy Castle ,并增加到 CLASSPATH 中。6. Servlet 容器下载和安装CXF 是一种基于 Servlet 技术的 SOA 应用开发框架,需要 Servlet 容器的支持。CXF 支持在多种 Servlet 容器中运行,包括 WebSphere、WebLogic、Tomcat、Jetty 等。三、 CXF 服务的发布与消费1. 配置环境变量(windows):将以下内容保存为env.bat2. 通过 Ant 来构建和运行示例a) 构建与启动 Server首先,进入到

15、%CXF_HOME%/java_first_pojo/ 目录下。在 UNIX 或 Windows 下的命令都是一样的,如下:ant server最后可以看到如下信息:build:server: java Server ready.如果看不到这些信息,请检查环境变量设置是否正确。b) 运行 Client再打开一个命令窗口,运行:ant client最后可以看到如下信息:client: java Invoke sayHi(). java Hello userBUILD SUCCESSFUL如果看不到这些信息,问题应当是出现在环境变量的设置上,需要再次检查一下您的环境变量设置是否正确。3. 体验改变

16、a) 修改 Client 端打开 %CXF_HOME%/samples/java_first_pojo/src/demo/hw/client 目录下的 Client.java 文件,在最后面修改为:System.out.println(client.sayHi(World , 利用 Apache CXF 实现 Web Services);可以改为其他你喜欢的字符串参数b) 修改 Server 端代码Ctrl+C直接停止刚才启动的ant server 启动端,然后打开%CXF_HOME%/samples/java_first_pojo/src/demo/hw/server 目录下的 HelloW

17、orldImpl.java 文件,修改return Hello + text;为return Hello + text + new java.util.Date();我们在返回信息时增加了一个时间戳上去,然后再次分别运行 ant server 与 ant client,看看有什么变化。c) 代码简单分析实际上,我们会发现java_first_pojo的源代码非常简单,Server端主要利用org.apache.cxf.frontend.ServerFactoryBean来发布服务,实例化一个实现类 HelloWorldImpl,设置将要进行发布的地址 address,最后通过 ServerFa

18、ctoryBean 的 create() 方法就成功地发布了 Web Services,如此简单而已;而客户端主要利用org.apache.cxf.frontend.ClientProxyFactoryBean来访问服务,绑定到 endPointAddress 地址,就可以 create 并得到服务,并进行服务消费了。ServerFactoryBean ClientProxyFactoryBean都属于下文提到的Simple Frontend范畴4. 构建和运行在 Servlet 容器里的示例a) 构建 Web 应用程序包停止掉前面运行的 Server ,然后在命令行运行:ant war 将在

19、 %CXF_HOME%/samples/java_first_pojo/build/war/ 目录下生成 helloworld.war 文件。b) 部署应用先运行如下命令,将运行部署到 Tomcat 容器中:ant deploy -Dtomcat=truec) 启动 Tomcat然后在 Windows 下通过 startup.bat 或在 Unix 下通过 startup.sh 来启动 Tomcat,CXF 的应用也就随之启动。通过 Tomcat 管理控制台 http:/localhost:8080/manager/html/ 可以看到已经成功部署了 helloworld.war 的应用程序,

20、如下图所示:d) 校验服务假设您的 Tomcat 服务端口是 8080 ,那运行以下命令就可以调用部署到 Java EE 容器里的 CXF 所提供的 Web Services 的服务了。http:/localhost:8080/helloworld/services/hello_world?wsdl查看 wsdl 文件的信息内容如下:e) 运行 Client接下来我们来运行 Client 来使用它,运行:ant client-servlet如果您的端口不是 8080,可以使用:ant client-servlet -Dbase.url=http:/localhost:端口号或者ant clie

21、nt-servlet -Dhost=localhost -Dport= 端口号来调用 Web Services ,返回结果如下:client-servlet: java Invoke sayHi(). java Hello World , 利用 Apache CXF 实现 Web ServicesThu Sep 27 21:56:32 CST 2007BUILD SUCCESSFULf) 卸载应用从 Tomcat 中卸载应用,运行:ant undeploy -Dtomcat=true最后,停止 Tomcat,然后清除构建过程中产生的一些文件,直接运行 ant clean 即可。四、 Apach

22、eCXF应用开发1. 开发环境准备下载并安装Eclipse 3.2(或更高版本)2. 创建项目骨架a) 创建web工程取名CXF_Spring_Surveyb) 导入支持包直接拷贝 %CXF_HOME%/lib 目录下的所有 .jar 文件到 CXF_Spring_Survey 项目的 WEB-INF/lib 目录下,也可以根据前面“CXF 安装包”章节所述的各个 jar 包的作用范围选择仅需要的 .jar 文件。或者拷贝“构建和运行在 Servlet 容器里的示例”中生成的web应用程序的lib目录下的jar。把这些jar添加到build path下。3. 接口类创建在项目的 src 目录中

23、新建一个 ws.cxf 包,并在里面创建接口类 ISurveyService.java,为了简单示示例起见,我们仅创建一个方法 public String vote(String username,int point); 这里要注意的是我们在接口上用 WebService 注解标明这是一个即将暴露为 Web Service 的接口,并将里面的方法都暴露出去。完整的接口代码清单如下:package ws.cxf;import javax.jws.WebService;WebServicepublic interface ISurveyService /* * param username * 名

24、字 * param point * 分数 * return */ public String vote(String username, int point);4. 具体实现类创建一个相应的实现类,并将其定义在 sw.cxf.impl 包中,完整的代码清单如下:5. Spring 配置在 src 目录中创建 beanRefServer.xml 文件,用来定义 Spring 的 Bean 的配置,CXF 支持 Spring 2.0 Schema 标签配置方式,并且提供快捷暴露 Web Services 的标签。首先,我们需要引入 Spring 与 CXF 的命名空间(namespace),如下:

25、 这样,我们可以使用 Spring 与 CXF 的标签配置了。接着,我们需要引入我们所需要的 CXF 的 Bean 定义文件,如下: 接着定义我们具体实现的 Bean ,这个 Bean 的定义与 Spring 普通的 Bean 定义是一样的: 最后,将定义的 Bean 暴露出去成为 Web Service 服务,通过 CXF 提供的 Schema 标签配置 ,这样定义的配置显得更加简洁与方便,定义如下: 还有一种配置方式:1WebService(endpointInterface = demo.spring.HelloWorld)public class HelloWorldImpl impl

26、ements HelloWorld 用标记指定接口2、使用jaxws:endpoint 标签 或者 在配置中,serviceClass 的值是我们的接口类的名称,address 为将要暴露出去的 Web Service 访问地址。比如:/SurveyWebService,那么客户端消费 Web Service 的地址就会成为 http:/host:port/WebAPPName/SurveyWebService ,与之相应的 WSDL 地址则为: http:/host:port/WebAPPName/SurveyWebService?wsdl 。6. Web 应用配置由于我们的示例是需要通过 Servlet 容器进行服务暴露,因此需要配置相对应的 web.xml 文件,首先是增加 Spring 的配置文件加载 Listener,如下: contextConfigLocation /WEB-INF/classes/beanRefServer.xml /context-param

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1