- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CXF学习笔记Webservice在实际开发中的应用场景新旧系统整合指的是,软件功能可能在很多年前开发了一套系统,到目前我们可以称之为遗留系统.新的系统可能使用的是不同的语言写的,运行在不同的平台上。但是希望利用原有平台的数据。不同公司业务整合,例如淘宝买东西,显示的物流信息,数据不可能是淘宝自己的,是快递公司的,快递公司发布一个接口给淘宝调用。内容聚合:例如一个系统要提供天气预报、股票行情、黄金行情等信息,这些数据一家公司可能都没有,但是就要去调用别人的接口,接口通常都是以webservice形式发布。1 CXF简介1.1 CXF在webservice中的应用Java中Webservice最早出现的框架是axis(Apache),当时使用的人很多.但是过了一段时间出现了一个新的框架XFire,XFire无论是从规范还是从实现上来说,比Axis功能都更为强大,此时AIXS的很多用户就转向了XFire,但是XFire不愿意放弃,于是进行了升级.推出AXIS2(Apache),由于已经有了XFire作为参考,于是新的版本将XFire中的功能都实现了,而且某些方面可能更优秀,因此一些人又去使用AXIS2.XFire此时又进行了升级.但是其不是简单的升级,其将另一个框架(Celtrix)也整合进来了, Celtrix+XFire就形成了现在的CXF(Apache).Xfire本身就是一个webservice框架, Celtrix是ESB(enterprise service bus企业服务总线)框架.在介绍ESB之间,先讲解SOA(面向服务的架构),又IBM主推一种架构.SOA所以提倡的与传统软件编写方法不同,传统情况下,我们将一个软件分模块编写,然后软件内部之间不同的模块之间项目调用(其他应用是无法调用该软件内部的模块的功能的)。在SOA中,软件系统模块之间不需要项目调用,编写的是一个个service,每一个服务都是一个个组件,所有的组件都是即插即用的,也就是功能的可插拔性。那么就像一个插座一样,每个插头相当于一个个webservice组件,而插座就是服务总线。因此,SOA需要包含两个方面的内容:一个个独立存在的服务以及提供插槽功能的服务总线。对于各种提供服务的组件,IBM公司推荐使用webservice实现对于类似插槽功能的插座,借鉴了计算机中的communicate bus通信总线的概念,只不过在企业应用中,我们不叫通信总线,叫企业服务总线(enterprise service bus,简称ESB)。因此CXF号称自己是SOA框架,不单单是webservice框架,而AIXS2虽然得到了升级,还是webservice框架,CXF在整个档次上提升了一级。按照SOA的概念,我们在软件设计的时候,我们可以将模块化设计利用到极致。在传统情况下,一个应用内部的模块只能在内部相互调用,但是在SOA中,一个软件内部的模块可供其他应用调用。我们可以将dao层单独建立一个项目,service层单独建立一个项目,view层单独建立一个项目Dao层以暴露一个接口给service层调用,service暴露一个接口给view层调用。这样,其他应用也可以调用这个应用的dao层与service层。不过,更一般的做法是只有service层暴露一个接口给其他应用调用,DAO层直接暴露给其他应用调用太危险了,数据无价。所以此时的软件架构一般是这样:Java应用程序ViewControl-对外公布服务层DAO/ModelDB手机终端PDAC#.NET应用更为复杂的应用除了自己内部调用之外有可能还会对外部程序提供服务,更或是调用其他应用。C#应用1.2 CXF下载与配置下载的版本是2.4.2.解压目录如下将bin目录添加到path环境变量下,此目录有一个工具wsdl2java.bat可以帮助我们生成客户端webservice支持代码。modules目录下是CXF分模块的jar包,也就是可以按需选择需要哪些功能支持。通常情况下,只需要添加lib目录下jar包即可,其是所有modules的整合。使用CXF开发webservice,需要在服务端导入以下jar包,客户端不需要,因为客户端有可能根本不是使用java编写的。在开发webservice时,代码和使用JAX-WS是一模一样的,导入这些jar包的作用是将JAX-WS对webservice的实现改变,改成有CXF实现,这是通过覆盖classpath中的路径实现的。因为JDK在寻找一个类的时候,最先在项目的下找,再找依赖jar包,最后才找JDK自带的jar包,因此,只要找到了一个,就不会再找其他的。Endpoint的publish方法的定义是如下的: public static Endpoint publish(Strin
文档评论(0)