JAX-RS

JAX-RS（Java API for RESTful Web Services）是一个Java编程语言的应用程序接口，支持按照表象化状态转变（REST）架构风格创建Web服务[1]。JAX-RS使用了Java SE 5引入的Java 标注来简化Web服务客户端和服务端的开发和部署。

## 规范内容

[编辑]

JAX-RS提供了一些标注将一个资源类，一个POJOJava类，封装为Web资源。标注包括：

* @Path，标注资源类或方法的相对路径
* @GET，@PUT，@POST，@DELETE，标注方法是用的HTTP请求的类型
* @Produces，标注返回的MIME媒体类型
* @Consumes，标注可接受请求的MIME媒体类型
* @PathParam，@QueryParam，@HeaderParam，@CookieParam，@MatrixParam，@FormParam,分别标注方法的参数来自于HTTP请求的不同位置，例如@PathParam来自于URL的路径，@QueryParam来自于URL的查询参数，@HeaderParam来自于HTTP请求的头信息，@CookieParam来自于HTTP请求的Cookie。

## JAX-RS的实现

[编辑]

JAX-RS的实现包括[2]：

* Apache CXF，开源的Web服务框架。
* Jersey， 由Sun提供的JAX-RS的参考实现。
* RESTEasy，JBoss的实现。
* Restlet，由Jerome Louvel和Dave Pawson开发，是最早的REST框架，先于JAX-RS出现。
* Apache Wink，一个Apache软件基金会孵化器中的项目，其服务模块实现JAX-RS规范

### Jersey

[编辑]

根据 Java EE 6 教程第1卷：Jersey是由Sun开发的产品级质量的JSR 311: JAX-RS: The Java API for RESTful Web Services的参考实现。Jersey实现了JSR-311中对标注的支持，这使得开发人员使用Java开发RESTfulWeb服务更加容易。除此以外，Jersey还增加了JSR以外的附加特性[3]。

## 注释

[编辑]

1. ^ Hadley, p. 1.
2. ^ Mark Little，比较各JAX-RS实现 （页面存档备份，存于互联网档案馆）
3. ^ Building RESTful Web Services with JAX-RS and Jersey.  [2010-07-07]. （原始内容存档于2009-06-11）.

## 参考文献

[编辑]

* Hadley, Marc and Paul Sandoz, eds. (September 17, 2009). JAX-RS: Java API for RESTful WebServices （页面存档备份，存于互联网档案馆） (version 1.1), Sun Microsystems, Inc.

## 外部链接

[编辑]

* JAX-RS规范 （页面存档备份，存于互联网档案馆）
* Jersey - 开源JAX-RS参考实现
* JSR 311项目（页面存档备份，存于互联网档案馆）
* RESTful Java with JAX-RS by Bill Burke on Google Books
* 使用 JAX-RS 简化 REST 应用开发 （页面存档备份，存于互联网档案馆）
* 用 Java 技术创建 RESTful Web 服务--JAX-RS：一种更为简单、可移植性更好的替代方式 （页面存档备份，存于互联网档案馆）
* Java EE 6 Web Services：JAX-RS 1.1提供了基于注解的REST支持

## 参见

[编辑]

* 查
* 论
* 编

Java

Java平臺|

* Java
* Java版本歷史
* Java 5.0
* JVM
* Java字节码
* Java ME
* Java SE
* Java EE
* Java Card
* Android SDK

Oracle技术|

* JDK
* OpenJDK
* Java虚拟机
* JavaFX
* maxine（英语：Maxine Virtual Machine）
* squawk（英语：Squawk virtual machine）

平台技术|

* Java集合框架
* Servlets
* JSP
* MIDlet（英语：MIDlet）
* Java平台模块系统
* web start jnlp（英语：Java Web Start）
* applet

主要的第三方技术|

* Eclipse
* Spring
* Spring Boot
* GNU Classpath
* Hibernate
* IcedTea（英语：IcedTea）
* Jazelle（英语：Jazelle）
* Struts
* TopLink
* WildFly
* blackdown（英语：Blackdown Java）
* harmony

历史|

* Java版本歷史
* JCP
* 昇陽電腦
* 自由的Java实现

主要JVM语言（英语：List of JVM languages）|

* BeanShell（英语：BeanShell）
* Clojure
* Groovy
* Oxygene（英语：Oxygene (programming language)）
* JRuby
* Jython
* Kotlin
* Processing
* Rhino
* Scala
* Tcl/Java（英语：Tcl/Java）

会议（英语：Professional conference）|

* JavaOne
* Devoxx（英语：Devoxx）

*[查]: 查看该模板
*[论]: 讨论该模板
*[编]: 编辑该模板