2008-09-17 22 views
50

我一直在使用JAX-RS參考實現(澤西島)做一些工作。我知道至少有兩個其他框架(Restlet & Apache CXF)。JAX-RS框架

我的問題是:有沒有人在這些框架之間做過一些比較,如果有的話,你會推薦哪個框架,爲什麼?

+0

另請參閱:http://stackoverflow.com/q/3459795/1725096 – 2015-04-27 09:57:02

回答

30

FWIW背後都有一個大的和充滿活力的開發者社區,具有很大的spring integration

如果您使用JBoss/SEAM,您可能會發現RESTeasy更好一點 - 但如果您使用Spring進行依賴注入,那麼Jersey似乎是最簡單,最流行,最活躍和最實用的實現。

+1

要小心。在社區支持和功能方面,澤西2.0在1.0版本中的表現明顯低於1.0,但在2.0版本中被刪除。 – Gili 2013-12-06 04:25:34

+0

您能詳細說明您缺少的功能嗎? – 2014-06-13 11:05:09

6

我的同事提到爲什麼我們在RESTful web services in Java EE with RESTeasy (JAX-RS)使用RestEasy的對我們目前的項目:

它的參考實現,新澤西州,因爲我們遇到了麻煩與EJB3和Seam 2.0整合得很好沒有選擇。

我們使用JAX-RS的RESTeasy實現,因爲我們沒有將它與EJB和Seam集成在一起。它也有足夠的文件。

Apache還有另一個實現,但我沒有嘗試過,因爲它使用了舊版本的JAX-RS。

最後,還有另一個Java REST風格的Web服務框架叫做Restlet,但我們並不贊成它,因爲在撰寫本文時,它正在使用定製體系結構,即使正確的JAX-RS支持正在工作。我們使用澤西作爲其包裝完整的功能(例如WADL,含蓄的意見,XML/JSON/ATOM支持)

+3

Apache CXF(http://cxf.apache.org)具有JAX-RS,但也有一個Apache孵化器項目,即JAX-RS符合的叫做Apache Wink(http://incubator.apache.org/wink/),與CXF不同的是JAX-RS。 – 2009-08-12 22:56:43

+1

感謝您指出眨眼。 – Luke 2010-01-15 10:36:09

7

我和我的團隊廣泛使用Restlet,但沒有使用JAX-RS的功能。我可以告訴你,Restlet開發人員和社區給我留下了非常深刻的印象;他們非常積極,積極主動,積極響應並致力於建立穩定,高效,可靠和有效的框架。我很抱歉,我無法直接解決您的主要興趣,但我認爲您可能會發現我對Restlet的寶貴經驗。

6

看起來好像有4個不錯的JAX-RS實現,所以你可能對任何一個都沒問題。 對於它的價值,我發現澤西(1.0.2)到目前爲止非常好。我的需求是相當謙虛,簡單的後端服務,照顧管道等。澤西做的很好。

6

發現Apache Wink非常易於使用,支持JAX-RS並且具有超出標準的許多功能。

26

Restlet具有擴展春,WADL,XML,JSON以及和廣泛的名單更多的人,包括擴展JAX-RS API。

它也是唯一框架available in six consistent editions

  • 的Java SE
  • 的Java EE
  • 谷歌Web工具包
  • 谷歌的AppEngine
  • 的Android
  • OSGi的環境

它的主要好處是:

  • 完全對稱的客戶端和服務器API時JAX-RS設計用於服務器端處理
  • 連接器,用於其他協議不是HTTP(映射到HTTP語義)時JAX-RS是HTTP只
  • 更廣泛的功能範圍,包括通過的Restlet API(但如果需要,可以與Servlet的集成)完整的URI路由控制
  • 全額計提NIO支持

如果僅限於JCP批准的API(那麼不要使用Spring或JAX-RS項目的任何擴展,如Jersey和RESTeasy!),JAX-RS API可能是一個不錯的選擇,但Restlet是最成熟的框架(最初於2005年發佈),並將在2.0版本中爲您提供註釋的所有優勢,以及強大且可擴展的面向類的框架。

更長的list of features, please check this page

最好的問候, 傑羅姆Louvel

的Restlet〜創始人和首席開發者〜http://www.restlet.org

0

我會用沒有框架。只是應用程序服務器附帶的一個。如果你使用一個框架的細節,你將失去可移植性,如果應用服務器的供應商包含你最喜歡的框架的不同版本,你將會陷入困境。我會堅持jax-ws。