设为首页 收藏本站
查看: 624|回复: 0

[经验分享] 开始研究Apache CXF

[复制链接]

尚未签到

发表于 2017-1-3 06:01:38 | 显示全部楼层 |阅读模式
      Apache CXF目前我看的版本是2.0.4-incubator。它仍然属于Apache孵化项目。也就是说,该项目还未成熟。很多内容仍然处于开发阶段。事实上也的确如此,你看过它官方提供的User's Guide就知道,起码他文档那一块就没完成(呵呵...前两天还就官方文档对CXF的开发者Willem同志抱怨过。感谢他提供的帮助)。但是,这并不会影响我学习它兴趣。首先就是因为它的名字CXF, CXF是指Celtix + XFire. XFire对于了解Webservice的朋友来说是无人不知无人不晓的。它提供了非常优秀而又简便的WebService解决方案。而Celtix我不知道有多少朋友了解这个项目(起码之前我不了解)。它是开源组织ObjectWeb的一个ESB解决方案的开源项目。Celtix提供了一个Run-time的Java enterprise service bus (ESB)(Java企业服务总线)以及一组可扩展的API,通过使用一个基于标准的,面向服务的体系来简化商业与技术组件的构建,集成和灵活重复使用 。不过这个项目在2006年1月就停止了官网是http://celtix.objectweb.org/。简而言之,对于CXF的初步想法就是这个项目是ESB+Webservice的解决方案。

      初试CXF是根据研究它下载文件中的Sample。因为对于JaxWS不熟悉,所以一开始就理解上有点问题。我一直都以为Webservice必须结合 WebContainer来使用,就算你不用Tomcat这样的容器,也起码使用Jetty来运行吧。可原来使用Jaxws就可以实现不必直接部署 WebService到WebContainer中去。可是我仍然不理解,如果脱离了webContainer,脱离IP地址的绑定,我们怎么实现分布式部署呢?(以后慢慢理解吧)

      所以我一开始就尝试了 java_first_spring_support这个Sample,这是一个可以放在webContainer中的一个结合Spring运行的 Example。你也可以直接使用它的Server.java这个类来通过jetty直接运行。不过对于这个Sample的研究很有价值,因为它能够让你结合以前webservice的经验对于CXF有一个初步的认识。也可以由此来尝试CXF中不同的传输方式以及其他不同的功能。

      不过在使用时我发现目前CXF所支持的Data bindings方式似乎只有JAXB 2.0。而JAXB不是一个很好的数据binding解决方式。因为就我所了解的Jaxb它是不支持Interface对象的,也就是说你传递参数时只能传递Implementation对象,而当你传输interface对象时它会无法根据interface生成该对象的实例。并且JAXB对于 Object类型支持的也不好。不过官网上说"XMLBeans, Castor and JiBX will be supported in CXF 2.1." 所以,下个版本的CXF我们就可以直接使用Interface对象作为参数以及返回类型了。但目前版本似乎不适合完全的IDD(Interface Drive Design)。

      目前我本人还有些地方无法确定,比如我看了差不多所有的CXF中自带的Sample,可是没有发现很明显的ESB(企业服务总线)的Sample。而大多数都是Webservice的多种不同的实现方式。而我之前说过,我对于CXF的第一印象是ESB+Webservice,可EBS部分似乎没有体现出来。当然我目前对于ESB的理解仅停留在Jboss ESB那庞大的实现方式上。可能CXF的ESB实现更轻量级。(以后慢慢深入理解)

      以后的文章会随着我的学习进度对CXF中的每个功能都加以详细的分析。To be continue...

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-322870-1-1.html 上篇帖子: Apache与SPNEGO备忘 下篇帖子: 修改Apache默认端口
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表