CXF、Restlet、RESTEasy、Jersey对比
     
    
    
     
     
    
   
    
     
     
    
   
    
     
      
       
        
         一、
        
       
      
      
       需求说明
      
     
    
   
    
     
      因为需要新增的系统调用接口使用了
     
     
      
       jsr311
      
     
     
      规范标准的
     
     
      
       REST
      
     
     
      架构的
     
     
      
       Web Service
      
     
     
      。考虑以后在产品中可能会经常使用到
     
     
      
       REST
      
     
     
      架构的
     
     
      
       WebService
      
     
     
      ,针对主流的实现架构进行研究、测试,进行对比,找出相对较好的实现。预研的主流实现有:
     
    
   
    
     
      
       l
      
      
      
     
    
    
     
      Jersey
     
    
   
    
     
      
       l
      
      
      
     
    
    
     
      RESTEasy
     
    
   
    
     
      
       l
      
      
      
     
    
    
     
      Restlet
     
    
   
    
     
      
       l
      
      
      
     
    
    
     
      Apache CXF
     
    
   
    
     
      
       
        
         二、
        
       
      
      
       各方面
      
     
    
    
     
      评价
     
    
   
    
     
      
       1.
      
      
      
     
    
    
     
      集成能力
     
    
   
    
     
      各种实现均支持
     
     
      
       Servlet
      
     
     
      和
     
     
      
       Spring
      
     
     
      的整合,无根本差别。
     
    
   
    
     
      
       
        2.
       
       
       
      
     
     
      
       稳定性
      
     
    
   
    
     
      各实现在应用服务器上长时间运行均无错误,详见测试报告。
     
    
   
    
     
      
       
        3.
       
       
       
      
     
     
      
       性能
      
     
    
   
    
     
      在性能测试中,
     
     
      
       RESTEasy
      
     
     
      吞吐率最好,
     
     
      
       Jersey
      
     
     
      其次,
     
     
      
       Restlet
      
     
     
      最差,详见测试报告。
     
    
   
    
     
      
       
        4.
       
       
       
      
     
     
      
       产品成熟度
      
     
    
   
    
     
      各种实现均支持
     
     
      
       jsr311
      
     
     
      的
     
     
      
       1.1
      
     
     
      和
     
     
      
       1.0
      
     
     
      版本,但
     
     
      
       Restlet
      
     
     
      通过扩展包实现对
     
     
      
       jsr311
      
     
     
      的支持;
     
     
      
       RESTEasy
      
     
     
      由于
     
     
      
       jboss
      
     
     
      的关系,支持
     
     
      
       EJB
      
     
     
      ;而
     
     
      
       Apache CXF
      
     
     
      支持多种
     
     
      
       WebService
      
     
     
      的实现方式。
     
    
   
    
     
      
       
        5.
       
       
       
      
     
     
      
       安全性
      
     
    
   
    
     
      安全性方面,个人认为本身要求容器中的
     
     
      
       WebService
      
     
     
      支持安全性,就有点过分,无非是数据传输加密即可满足大部分需要,而各种实现对这方面均做了一定的支持,其他安全方面
     
     
      
       RESTEasy
      
     
     
      没有特别的安全策略,完全依靠容器的安全策略。
     
    
   
    
     
      
       
        6.
       
       
       
      
     
     
      
       易用性
      
     
    
   
    
     
      这些东东的中文文档都非常的少,学习起来有点困难,在我学习的过程中感觉,开发配置其实都不困难,但
     
     
      
       Jersey
      
     
     
      竟然连英文文档都比较少。
     
    
   
    
     
      
       
        7.
       
       
       
      
     
     
      
       可配置能力
      
     
    
   
    
     
      配置方面,基本的文件格式(
     
     
      
       xml
      
     
     
      、文本、
     
     
      
       json
      
     
     
      等)都是支持的,
     
     
      
       Restlet
      
     
     
      还支持很多扩展和不同的平台(
     
     
      
       Android
      
     
     
      、
     
     
      
       GAE
      
     
     
      等)。
     
    
   
    
     
      
       
        8.
       
       
       
      
     
     
      
       维护性
      
     
    
   
    
     
      维护时的官方文档都是有的,具体是否容易读懂代码和修改代码,我也没有长时间维护过,很难说。
     
    
   
    
     
      
       
        
         三、
        
       
      
      
       总结
      
     
    
   
    
     
      通过各方面比较,这
     
     
      
       4
      
     
     
      个
     
     
      
       jsr311
      
     
     
      标准的实现中,各方面差别不大,突出的问题是文档太少,尤其中文文档太少。性能上看
     
     
      
       RESTEasy
      
     
     
      是最好的,
     
     
      
       Jersey
      
     
     
      其次,
     
     
      
       cxf
      
     
     
      和
     
     
      
       Restlet
      
     
     
      最差,这可能与这两种实现的复杂度有关。对于有特殊需要的情况
     
     
      
       Apache CXF
      
     
     
      提供多种的
     
     
      
       webservice
      
     
     
      ,
     
     
      
       Restlet
      
     
     
      提供多种扩展包,
     
     
      
       RESTEasy
      
     
     
      对
     
     
      
       EJB
      
     
     
      支持。
     
    
   
    
     
      测试数据见:
     
    
   
    
     
      
       http://wenku.baidu.com/view/edd686781711cc7931b716c4.html
      
     
    
   
    
     
     
    
   
 
