开始研究Apache CXF

      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...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值