JAX-RS框架
我一直在使用JAX-RS参考实现(Jersey)进行一些工作。
我至少知道另外两个框架(Restlet和Apache CXF)。
我的问题是:有人在这些框架之间做过比较吗?如果可以,我们会推荐哪个框架?为什么?
解决方案
回答
我的同事提到为什么我们将RESTeasy用于Java EE with RESTeasy(JAX-RS)中的RESTful Web服务中的当前项目:
Its reference implementation, Jersey, was not chosen because we had trouble integrating it well with EJB3 and Seam 2.0. We are using the RESTeasy implementation of JAX-RS, because we had no trouble integrating it with our EJBs and Seam. It also has sufficient documentation. There is another implementation from Apache, but I haven’t tried it because it uses an older version of JAX-RS. Finally there is yet another framework for RESTful web services for Java called Restlet but we did not favour it because at the time of this writing, it is using a custom architecture, even though proper JAX-RS support is in the works.
回答
FWIW我们使用Jersey作为其功能组合(例如WADL,隐式视图,XML / JSON / Atom支持),它背后拥有庞大而活跃的开发者社区,并且具有强大的Spring集成。
如果我们使用JBoss / SEAM,我们可能会发现RESTeasy集成更好,但是如果我们使用Spring进行依赖注入,那么Jersey似乎是最简单,最受欢迎,活动和功能强大的实现。
回答
我和我的团队广泛使用Restlet,但没有使用其JAX-RS功能。我可以告诉你,Restlet开发人员和社区给我留下了深刻的印象。他们非常活跃,参与,反应迅速,并致力于建立稳定,高效,可靠和有效的框架。抱歉,我无法直接解决主要兴趣,但我想我们可能会发现我在Restlet方面的经验很有价值。
回答
似乎有4个不错的JAX-RS实现,因此我们可能对其中的任何一个都满意。
就其价值而言,到目前为止,我发现泽西岛(1.0.2)确实非常不错。我的需求是相当适度的,简单的后端服务,照顾管道等。那个泽西岛表现不错。
回答
发现Apache Wink非常易于使用,支持JAX-RS,并且具有许多超出标准的功能。
回答
Restlet拥有针对Spring,WADL,XML,JSON以及许多其他扩展的广泛列表,其中包括针对JAX-RS API的扩展。
它也是六个一致版本中可用的唯一框架:
- Java SE
- Java EE
- Google Web工具包
- Google AppEngine
- 安卓
- OSGi环境
它的主要优点是:
- 当JAX-RS设计用于服务器端处理时,完全对称的客户端和服务器API
- 当JAX-RS仅是HTTP时,用于除HTTP之外的其他协议的连接器(映射到HTTP语义)
- 更广泛的功能范围,包括通过Restlet API的完整URI路由控制(但如果需要可以与Servlet集成)
- 全面提供NIO支持
如果我们限于使用JCP批准的API(那么就不要使用Spring或者诸如Jersey和RESTeasy的JAX-RS项目的任何扩展!),那么JAX-RS API可能是一个不错的选择,但是Restlet是最成熟的框架(最初于2005年发布),并将在其2.0版本中为我们提供注释的所有优势以及强大且可扩展的面向类框架。
有关功能的更多列表,请检查此页面。
最好的祝福,
杰罗姆·卢维尔(Jerome Louvel)
Restlet〜创始人和首席开发人员〜http://www.restlet.org