JAX-RS -- Java API for RESTful Web Services
Java EE 6 引入了对 JSR-311 的支持。JSR-311(JAX-RS:Java API for RESTful Web Services)旨在定义一个统一的规范,使得 Java 程序员可以使用一套固定的接口来开发 REST 应用,避免了依赖于第三方框架。同时,JAX-RS 使用 POJO 编程模型和基于标注的配置,并集成了 JAXB,从而可以有效缩短 REST 应用的开发周期。
JAX-RS 的具体实现由第三方提供,例如 Sun 的参考实现 Jersey、Apache 的 CXF 、Axis2 以及 JBoss 的 RESTEasy。
JAX-RS提供了一些标注将一个资源类,一个POJOJava类,封装为Web资源。标注包括:
- @Path,注释被用来描述根资源、子资源方法或子资源的位置。
value
值可以包含文本字符、变量或具有定制正则表达式的变量。清单 6 的例子展示了@Path
注释的主要应用。 - @GET,@PUT,@POST,@DELETE,标注方法是用的HTTP请求的类型.您可以使用它们来绑定根资源或子资源内的 Java 方法与 HTTP 请求方法。HTTP GET 请求被映射到由 @GET 注释的方法;HTTP POST 请求被映射到由 @POST 注释的方法,以此类推。用户可能还需要通过使用
@HttpMethod
注释定义其自己的定制 HTTP 请求方法指示符。 - @Produces,注释代表的是一个资源可以返回的 MIME 类型。这些注释均可在资源、资源方法、子资源方法、子资源定位器或子资源内找到。
- @Consumes,注释代表的是一个资源可以接受的 MIME 类型。
- @PathParam,@QueryParam,@HeaderParam,@CookieParam,@MatrixParam,@FormParam,分别标注方法的参数来自于HTTP请求的不同位置,例如@PathParam来自于URL的路径,@QueryParam来自于URL的查询参数,@HeaderParam来自于HTTP请求的头信息,@CookieParam来自于HTTP请求的Cookie。
在 JAX-RS 规范之前,已经有 Restlet 和 RestEasy 之类的框架,可以帮助您实现 RESTful Web 服务,但是它们不够直观。
1)Jersey 是 JAX-RS 的参考实现,它包含三个主要部分。
核心服务器(Core Server):通过提供 JSR 311 中标准化的注释和 API 标准化,您可以用直观的方式 开发 RESTful Web 服务。
核心客户端(Core Client):Jersey 客户端 API 帮助您与 REST 服务轻松通信。
集成(Integration):Jersey 还提供可以轻松集成 Spring、Guice、Apache Abdera 的库。
2) CXF:Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。目前它仍只是 Apache 的一个孵化项目。
Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS 。这些 Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多种传输协议上运行,
CXF 包含了大量的功能特性,但是主要集中在以下几个方面:
- 支持 Web Services 标准:CXF 支持多种 Web Services 标准,包含 SOAP、Basic Profile、WS-Addressing、WS-Policy、WS-ReliableMessaging 和 WS-Security。
- Frontends:CXF 支持多种“Frontend”编程模型,CXF 实现了 JAX-WS API (遵循 JAX-WS 2.0 TCK 版本),它也包含一个“simple frontend”允许客户端和 EndPoint 的创建,而不需要 Annotation 注解。CXF 既支持 WSDL 优先开发,也支持从 Java 的代码优先开发模式。
- 容易使用: CXF 设计得更加直观与容易使用。有大量简单的 API 用来快速地构建代码优先的 Services,各种 Maven 的插件也使集成更加容易,支持 JAX-WS API ,支持 Spring 2.0 更加简化的 XML 配置方式,等等。
- 支持二进制和遗留协议:CXF 的设计是一种可插拨的架构,既可以支持 XML ,也可以支持非 XML 的类型绑定,比如:JSON 和 CORBA。
相关推荐
**JAX-RS与JAX-WS详解:** 1. **JAX-RS**(Java API for RESTful Web Services)是Java平台上的REST(Representational State Transfer)风格Web服务的标准。REST是一种轻量级的架构风格,它基于HTTP协议,利用URL...
**JAX-RS与REST接口实例详解** JAX-RS(Java API for RESTful Web Services)是Java平台上的一个标准,用于创建RESTful Web服务。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式...
### 关于RESTful与JAX-RS的知识点详解 #### JAX-RS简介与背景 JAX-RS(Java API for RESTful Web Services)作为Java平台上的一个关键API,在Java EE 6中首次被引入。它是一种编程模型,用于创建符合REST...
**JAX-RS CXF Web服务 RESTful CRUD与Spring集成详解** JAX-RS(Java API for RESTful Web Services)是Java平台上的一个标准,用于创建RESTful Web服务。REST是一种轻量级的架构风格,它以资源为中心,通过HTTP...
**JAX-RS方式的RESTful Web Service开发详解** RESTful Web Service是一种基于HTTP协议的、无状态的、客户端-服务器交互模式,它利用HTTP方法(GET、POST、PUT、DELETE等)来实现对资源的操作。JAX-RS是Java API ...
在探讨“jaxrs导致的错误”这一主题时,我们深入分析了由JAX-RS(Java API for RESTful Web Services)引发的特定异常情况。这一问题不仅涉及JAX-RS框架本身,还牵扯到Spring框架与Apache CXF库之间的交互,其中包含...
### JAX-RS 1.1 规范详解 #### 一、概述 JAX-RS(Java API for RESTful Web Services)1.1 版本是为开发基于 Representational State Transfer (REST) 架构风格的 Web 服务而设计的一系列 Java API。此规范由 Sun ...
#### 四、JAX-RS规范详解 JAX-RS(Java API for RESTful Web Services)是Java平台上的一个标准API,用于构建RESTful服务。本书深入探讨了JAX-RS规范的各项特性,包括但不限于: 1. **注解驱动**:JAX-RS通过注解...
### RESTful Java with JAX-RS 2.0 第二版 关键知识点解析 #### 一、RESTful架构原理及重要性 ##### **REST与HTTP的复兴** REST(Representational State Transfer)是一种软件架构风格,它利用HTTP协议来构建网络...
"jaxrs-images" 这个标题表明我们关注的是一个使用 JAX-RS 实现的项目,该项目特别关注图像的处理。JAX-RS 是 Java API for RESTful Web Services 的缩写,它是一种标准,用于在 Java 应用程序中创建和消费 RESTful ...
标题 "resteasy-jaxrs-2.2 学习整理的例子" 暗示了我们即将探讨的是关于RESTful服务开发的一个案例,其中涉及到的主要技术是RESTEasy和JAX-RS 2.2。RESTEasy是Java EE平台上的一个开源框架,它实现了Java API for ...
**JAX-RS详解** JAX-RS是用于创建RESTful Web服务的Java规范。REST(Representational State Transfer)是一种轻量级的架构风格,强调资源的获取和操作。JAX-RS通过注解简化了REST服务的开发: 1. **资源类**:...
**JAX-RS 上下文详解** JAX-RS(Java API for RESTful Web Services)是Java平台上的标准,用于创建RESTful Web服务。在JAX-RS中,上下文(Context)允许开发者访问与请求相关的信息,或者注入依赖项,以增强服务的...
【SSH REST WS JAX-RS Jersey 小网站后台及Web Service接口详解】 SSH(Spring、Struts、Hibernate)是Java Web开发中常见的三层架构,它整合了Spring的依赖注入、Struts的MVC模式和Hibernate的对象关系映射,提供...
**JAX-WS Web服务详解** Java API for XML Web Services(JAX-WS)是Java平台上用于构建和消费Web服务的标准API。它基于SOAP(Simple Object Access Protocol),用于创建面向服务架构(SOA)中的服务。JAX-WS是...
在"jaxrs-0.52.zip"中包含的"sameas4j-master"可能指的是该开源项目的源代码仓库,通常以Git仓库的形式存在,其中包含了项目的所有源代码、测试代码、文档以及构建脚本。对于开发者而言,查阅这样的源代码可以帮助...
【标题】"cxf-jax-rs-template"是一个基于Gradle的Java项目,专注于JAX-RS(Java API for RESTful Web Services)的快速启动模板。这个项目为开发者提供了一个框架,帮助他们轻松地创建RESTful服务,使用Gradle作为...
"jersey-ear:测试 repo 来玩球衣和 jax-rs" 这个标题提到了两个关键概念,"jersey-ear" 和 "JAX-RS"。"jersey-ear" 指的是 Jersey 库在 EAR(Enterprise Archive)项目中的应用,EAR 文件是用于打包 Java EE 应用的...
**知识点详解:** 1. **JAX-WS基础**:JAX-WS是Java平台上的一个标准,它定义了一种用于创建Web服务的模型,使得开发者可以通过简单的编程接口来处理SOAP消息。 2. **服务接口定义**:使用JAX-WS,你可以通过Java...
**J2EE Web服务:XML、SOAP、WSDL、UDDI、WS-I、JAX-RPC、JAXR、SAAJ、JAXP详解** 在IT领域,尤其是在Java企业级应用开发中,Web服务扮演着至关重要的角色。J2EE(Java 2 Platform, Enterprise Edition)提供了一...