我一直在使用JAX-RS参考实现(Jersey).我知道至少有两个其他框架(Restlet和Apache CXF).
我的问题是:有没有人在这些框架之间进行一些比较,如果是,你会推荐哪个框架,为什么?
FWIW我们使用Jersey作为其丰富的功能(例如WADL,隐式视图,XML/JSON/Atom支持),它背后有一个庞大而充满活力的开发人员社区,并且具有很好的弹簧集成.
如果您使用JBoss/SEAM,您可能会发现RESTeasy集成更好一些 - 但如果您使用Spring for Dependency Injection,那么Jersey似乎是最简单,最流行,最活跃和最实用的实现.
Restlet有一个扩展的Spring,WADL,XML,JSON扩展列表以及更多,包括JAX-RS API的扩展.
它也是六个一致版本中唯一的框架:
Java SE
Java EE
Google Web Toolkit
谷歌AppEngine
Android的
OSGi环境
它的主要好处是:
当JAX-RS设计用于服务器端处理时,完全对称的客户端和服务器API
当JAX-RS仅为HTTP时,用于HTTP之外的其他协议(映射到HTTP语义)的连接器
更广泛的功能范围,包括通过Restlet API进行完整的URI路由控制(但如果需要可以与Servlet集成)
全面支持NIO
如果您受限于JCP批准的API(那么不使用Spring或JAX-RS项目的任何扩展,如Jersey和RESTeasy!),JAX-RS API可能是一个不错的选择,但是否则Restlet是最成熟的框架(最初于2005年发布)并将在2.0版本中为您提供注释的所有好处,以及强大且可扩展的面向类的框架.
有关更长的功能列表,请查看此页面.
最诚挚的问候,Jerome Louvel
Restlet~创始人兼首席开发人员~ http://www.restlet.org
我的团队和我广泛使用Restlet,但不是它的JAX-RS功能.我可以告诉你,我对Restlet的开发者和社区印象非常深刻; 他们非常积极,参与,反应迅速,致力于建立一个稳定,高效,可靠和有效的框架.对不起,我无法直接解决您的主要兴趣,但我认为您可能会发现我对Restlet的经验很有价值.
我的同事提到我们为什么在REST EE中使用RESTeasy(JAX-RS)将RESTeasy用于RESTful Web服务中的当前项目:
它的参考实现Jersey没有被选中,因为我们很难将它与EJB3和Seam 2.0很好地集成.
我们正在使用JAX-RS的RESTeasy实现,因为我们在将它与EJB和Seam集成时没有遇到任何问题.它还有足够的文档.
Apache还有另一个实现,但我没有尝试过,因为它使用的是旧版本的JAX-RS.
最后还有另一个用于Java的RESTful Web服务框架,称为Restlet,但我们不喜欢它,因为在撰写本文时,它使用的是自定义体系结构,即使正在使用正确的JAX-RS支持.
看起来有4个不错的JAX-RS实现,所以你可能对它们都没问题.对于它的价值,我发现泽西(1.0.2)到目前为止非常好.我的需求是相当适度,简单的后端服务,照顾管道等等.泽西岛确实很好.
发现Apache Wink非常易于使用,支持JAX-RS并且具有许多超出标准的功能.