1. 程式人生 > >JAX-RS規範的版本.實現.jar對應關係

JAX-RS規範的版本.實現.jar對應關係

簡介

JAX-RS: Java API for RESTful Web Services是一個Java程式語言的應用程式介面,支援按照 表象化狀態轉變 (REST)架構風格建立Web服務. JAX-RS使用了Java SE 5引入的Java 標註來簡化Web服務客戶端和服務端的開發和部署。

版本說明

名詞解釋

JCP:Java Community Process

一個開放的國際組織,主要由Java開發者以及被授權者組成,職能是發展和更新。
Java技術和JCP兩者的原創者都是SUN計算機公司。然而,JCP已經由SUN於1995年創造Java的非正式過程,演進到如今有數百名來自世界各地Java代表成員一同監督Java發展的正式程式。
JCP維護的規範包括J2ME、J2SE、J2EE,XML,OSS,JAIN等。組織成員可以提交JSR(Java Specification Requests),通過特定程式以後,進入到下一版本的規範裡面。

JSR:Java Specification Requests

Java 規範提案。是指向JCP(Java Community Process)提出新增一個標準化技術規範的正式請求。任何人都可以提交JSR,以向Java平臺增添新的API和服務。JSR已成為Java界的一個重要標準。
即為一個規範代號:JSR311,JSR303等
完整JSR列表請檢視JCP官網

版本

JSR311: 即代號為311的規範請求,對應JAX-RS規範,版本為 1.0
JSR399: 即代號為399的規範請求,對應JAX-RS規範,版本為 2.0

JAX-RS對應實現

何為實現

對於規範的實現,可以理解為面嚮物件語言中實現介面的概念。介面定義的即是一種規範、一種約束,由具體的模組來去完整的詮釋這種規範,此為實現。

下面是不同組織用來詮釋JAX-RS規範的不同產品:

  • Apache CXF,開源的Web服務框架。
  • Jersey, 由Sun提供的JAX-RS的參考實現。
  • RESTEasy,JBoss的實現。
  • Restlet,由Jerome Louvel和Dave Pawson開發,是最早的REST框架,先於JAX-RS出現。
  • Apache Wink,一個Apache軟體基金會孵化器中的專案,其服務模組實現JAX-RS規範

這裡討論Jersey和RESTEasy:
Jersey1.x:JAX-RS 1.0
Jersey2.x:JAX-RS 2.0

RESTEasy1.x/2.x:JAX-RS 1.0
RESTEasy3.x:JAX-RS 2.0

Jar包區別

在JAX-RS規範的具體應用中,經常會遇見jsr311-api.jar,jsr311-api.jar,jaxrs-api.jar,jersey-core這幾種包,下面對這些包的區別做了描述:

  • jsr311-api:JAX-RS 1.0 的官方規範包
  • javax.ws.rs-api:JAX-RS 2.0 的官方規範包

(以上為官方標準規範包,其中包含對應的註解和一些輔助類)

  • jaxrs-api:RESTEasy規範包,其中包含對應版本JAX-RS規範的內容以及自定義的異常和介面
  • jersey-core:Jersey規範包,包含對應版本JAX-RS規範的內容以及部分實現,餘下實現在jersey的其他包中