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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

Apache cxf 学习笔记.docx

1、Apache cxf 学习笔记学习笔记(仅供内部使用)修订记录日期修订版本修改章节修改描述作者2011-06-201.00初稿完成易华军目 录1 CXF简介 41.1 CXF概述 41.2 CXF支持 41.2.1 协议标准 41.2.2 传输方式 41.3 CXF特点 51.3.1 灵活部署 51.3.2 支持多种编程语言 51.3.3 代码生成 61.4 CXF环境要求 62 实践讲解 62.1 CXF 开发例子 62.1.1 步骤图 62.1.2 步骤详解 82.2 CXF与Spring集成例子 112.2.1 步骤图 112.2.2 步骤详解 133 附录 163.1 cxf如何生成客

2、户端 163.2 cxf会用到的注解 (还未完善) 17导语:该文档主要讲解CXF的实践例子,包括纯CXF和Spring集成的两个例子。理论方面的知识还有待各位的完善。1 CXF简介本章主要简介CXF的理论知识。1.1 CXF概述CXF 是Celtix + Xfire的结合体,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支

3、持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。Apache CXF已经是一个正式的Apache顶级项目。 1.2 CXF支持1.2.1 协议标准CXF支持多种协议标准:JAX-WS、 JAX-WSA、JSR-181 和 SAAJ;支持 SOAP 1.1、1.2、WS-I BasicProfile、WS-Security、WS-Addressing、WS-RM 和 WS-Policy;支持 WSDL 1.1 、2.0;支持 MTOM;1.2.2 传输方式CXF支持多种协议传输方

4、式:Bindings:SOAP、REST/HTTP;Data Bndings:目前支持 JAXB 2.0、Aegis 两种,默认是 JAXB 2.0。XMLBeans、Castor 和 JiBX 数据绑定方式将在 CXF 2.1 版本中得到支持;格式(Format):XML、JSON;传输方式:HTTP、Servlet、JMS 和 Jabber;可扩展 API :允许为 CXF 增加其它的 Bindings,以能够支持其它的消息格式,比如:CSV 和固定记录长度。1.3 CXF特点1.3.1 灵活部署轻量级容器:可在 Tomcat 或基于 Spring 的容器中部署 Services;集成 J

5、BI:可以在如 ServiceMix, OpenESB or Petals 等等的 JBI 容器中将它部署为一个服务引擎;集成 SCA:可以部署在如 Tuscany 之类的 SCA 容器中;集成 J2EE:可以在 J2EE 应用服务器中部署 Services,比如:Geronimo、JOnAS、JBoss、WebSphere Application Server 和 WebLogic Application Server,以及 Jetty 和 Tomcat;独立的 Java 客户端服务器。 1.3.2 支持多种编程语言全面支持 JAX-WS 2.0 客户端服务器编程模型;支持 JAX-WS 2

6、.0 synchronous、asynchronous 和 one-way APIs;支持 JAX-WS 2.0 Dynamic Invocation Interface (DII) API;支持 wrapped and non-wrapped 风格;支持 XML messaging API;支持 JavaScript 和 ECMAScript 4 XML (E4X) ,客户端与服务端均支持;通过 Yoko 支持 CORBA;通过 Tuscany 支持 SCA;通过 ServiceMix 支持 JBI ; 1.3.3 代码生成Java to WSDL;WSDL to Java;XSD to W

7、SDL;WSDL to XML;WSDL to SOAP;WSDL to Service;1.4 CXF环境要求CXF 框架是一种基于 Servlet 技术的 SOA 应用开发框架,要正常运行CXF,除了 CXF 框架本身之外,还需要 JDK 和 Servlet 容器的支持。2 实践讲解本章讲解使用CXF框架发布Web Services服务的两个例子。2.1 CXF 开发例子讲解使用CXF框架发布Web Services的例子。2.1.1 步骤图2.1.2 步骤详解下载CXF最新发布包下载地址http:/cxf.apache.org/download.html创建一个Web工程引入CXF ja

8、r包把前面下载的CXF包解压,进入lib目录。把所有jar包拷贝到刚创建的Web工程的lib目录。配置CXFServlet打开web.xml配置CXF的接入Servlet。样例如下: CXFServlet org.apache.cxf.transport.servlet.CXFServlet 1 CXFServlet /cxftest/* 编写待发布的接口下面编写一个简单的登录接口。样例如下:import javax.jws.WebService;WebServicepublic interface Login String login(String name, String password

9、);编写接口的实现类样例如下:import javax.jws.WebService;WebService(endpointInterface = com.test.service.cxf.Login, serviceName = Login)public class LoginImpl implements Login public String login(String name, String password) String result = 登录CXF 服务端成功!; if (!cxf.equalsIgnoreCase(name) | !cxf.equalsIgnoreCase(pa

10、ssword) result = 用户名或密码不正确,请重新登录!; return result; 编写发布服务类样例如下:import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import org.apache.cxf.jaxws.JaxWsServerFactoryBean;public class InitServlet extends HttpServlet Override public void init() throws ServletException LoginImpl logi

11、nImpl = new LoginImpl(); JaxWsServerFactoryBean jwpFactory = new JaxWsServerFactoryBean(); jwpFactory.setAddress(/Login); jwpFactory.setServiceClass(LoginImpl.class); jwpFactory.setServiceBean(loginImpl); jwpFactory.create(); 配置启动发布服务类前面我们把发布服务的类实现在一个Servlet里,所以把该类配置到web.xml里这样启动工程时就会发布Web Services。

12、样例如下:import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import org.apache.cxf.jaxws.JaxWsServerFactoryBean;public class InitServlet extends HttpServlet Override public void init() throws ServletException LoginImpl loginImpl = new LoginImpl(); JaxWsServerFactoryBean jwpFactor

13、y = new JaxWsServerFactoryBean(); jwpFactory.setAddress(/Login); jwpFactory.setServiceClass(LoginImpl.class); jwpFactory.setServiceBean(loginImpl); jwpFactory.create(); 发布工程并启动获取发布的WSDL访问发布的工程再拼加上CXF监听路径。如:http:/localhost:8080/StudyCXF/cxftest/Login?wsdl生成客户端代码查看 附录3.1 如何生成客户端代码。然后把生成的客户端代码放到客户端工程。提

14、示: 从生成的客户端代码中会有很多实际上我们用不到的源文件,可根据实际情况进行清理,这里只需要Login.java。编写客户端调用代码客户端一般是其它的系统,这里只讲解客户端在调用服务端的代码编写。样例如下:import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;public class CXFClient public static void main(String args) JaxWsProxyFactoryBean jwpFactory = new JaxWsProxyFactoryBean(); jwpFactory .setAddress

15、(http:/localhost:8080/StudyCXF/cxftest/Login?wsdl); jwpFactory.setServiceClass(Login.class); Login login = (Login) jwpFactory.create(); String result = login.login(cxf, cxf); System.out.println(登录结果: + result); 2.2 CXF与Spring集成例子讲解CXF与Spring集成发布Web Services的例子。2.2.1 步骤图2.2.2 步骤详解下载CXF最新发布包下载地址http:/

16、cxf.apache.org/download.html创建一个Web工程引入CXF jar包把前面下载的CXF包解压,进入lib目录。把所有jar包拷贝到刚创建的Web工程的lib目录。配置web.xml打开web.xml配置CXF的接入Servlet,和Spring的接入Listener。样例如下: contextConfigLocation WEB-INF/conf/beans.xml org.springframework.web.context.ContextLoaderListener CXFServlet org.apache.cxf.transport.servlet.CXFS

17、ervlet 1 CXFServlet /cxftest/* 提示:beans.xml是Spring的配置文件,请根据实际情况配置所在路径。后面配置服务端是在该文件里配置。编写待发布的接口下面编写一个简单的订单接口。样例如下:import javax.jws.WebParam;import javax.jws.WebService;WebServicepublic interface OrderProcess String processOrder(WebParam(name = Order) Order order);提示:更多的注解描述请查看 附录3.2 。编写接口的实现类样例如下:imp

18、ort javax.jws.WebService;WebService(endpointInterface = com.test.service.spring, serviceName = OrderProcess)public class OrderProcessImpl implements OrderProcess public String processOrder(Order order) String userName = order.getUserName(); return userName + 您好:订单处理成功,生成的订单号是:88888888; 提示:更多的注解描述请查看

19、 附录3.2 。配置服务端编辑beans.xml文件,配置服务端接口类。样例如下: !- - 提示:这里给出二种发布服务端接口的方式,随便哪一种都可以发布工程并启动获取发布的WSDL访问发布的工程再拼加上CXF监听路径。如:http:/localhost:8080/StudyCXFSpring/cxftest/OrderProcess?wsdl生成客户端代码查看 附录3.1 如何生成客户端代码。然后把生成的客户端代码放到客户端工程。客户端工程应该也是一个引入了CXF集成Spring包的工程,创建步骤同服务端工程。提示: 从生成的客户端代码中会有很多实际上我们用不到的源文件,可根据实际情况进行清

20、理,这里只需要Order.java,OrderProcess.java配置客户端在客户端工程中找到Spring的配置文件并配置如下内容。样例如下: 编写客户端调用代码客户端一般是其它的系统,这里只讲解客户端在调用服务端的代码编写。样例如下:import org.springframework.context.support.FileSystemXmlApplicationContext;public class CXFClient public static void main(String args) FileSystemXmlApplicationContext context = new

21、 FileSystemXmlApplicationContext( WebRoot/WEB-INF/conf/client-bean.xml); OrderProcess orderProcess = (OrderProcess) context.getBean(client); Order order = new Order(); order.setUserName(yihuajun); String result = orderProcess.processOrder(order); System.out.println(result); 3 附录3.1 cxf如何生成客户端 dos命令下

22、进入cxf解压目录的bin路径 ,输入如下命令:wsdl2java -d src -clienthttp:/localhost:8060/soa/services/otherTrackedVehicleSoapService?wsdlwsdl2java在cxf包中的bin路径下另外里面的src为生成代码存放路径,src必须手动创建。使用cxf wsdl2java或javax wsimport工具的时候,可能会遇到关于生成的Response类文件名冲突的问题WSDLToJavaError:ThrownbyJAXB:Aclass/interfacewiththesamenameXXX*isalre

23、adyinuse.Useaclasscustomizationtoresolvethisconflict.目前可选择的方案:1.使用-autoNameResolution自动处理wsdl2java -autoNameResolution http:/localhost:8060/soa/services/otherTrackedVehicleSoapService?wsdlorwsimport -p com.test.client -keephttp:/localhost:8060/soa/services/otherTrackedVehicleSoapService?wsdl-B-XautoNameResolution3.2 cxf会用到的注解 (还未完善)

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

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