【IT168 文档】上周我们介绍了Java EE 6平台的主要目标,本篇介绍这个版本中引入的新技术。这些新技术使这个平台变得更加强大,其中三个重要的新技术包括:
◆RESTful Web Services Java API (JAX-RS)
◆面向Java EE平台的上下文和依赖性注入(CDI)
◆Bean验证
本文将介绍RESTful Web Services Java API (JAX-RS)。
RESTful Web Services Java API (JAX-RS)
RESTful Web Services Java API (JAX-RS),JSR 311让你可以迅速构建遵循REST(Representational State Transfer,表象化状态转变。参考阅读:《什么是REST》)风格软件架构的轻量级Web服务。REST中的一个重要概念是资源的存在性,每个资源都一个全局引用标识符,即URI。特别是数据和函数都被认为是可通过URI识别和访问的资源。为了操纵这些资源,网络组件,客户端和服务器通过一个标准的接口通信,如HTTP和一个组固定的动词 — GET,PUT,POST和DELETE — 交换这些资源。
RESTful Web服务是按照REST架构风格构建的Web服务,利用RESTful方法使用基于SOAP的技术构建Web服务已经成为一个受欢迎的选择,这都得感谢REST的轻量级特性和直接通过HTTP传输数据的能力。
JAX-RS为在Java中构建RESTful Web服务提供了标准化API,API提供了一组注解,以及相关的类和接口。对POJO应用注解允许你暴露Web资源,这个方法使得在Java中创建RESTful Web服务变得简单。
JAX-RS 1.0技术规范定稿于2008年10月,包括了一个参考实现Jersey,Java EE 6包括了这个技术规范的最新版本JAX-RS 1.1,这个版本与Java EE 6中的新特性保持一致。
下面我们一起来看一个使用JAX-RS构建的RESTful Web服务:
import javax.ws.rs.Produces;
import javax.ws.rs.Get;
import javax.ws.rs.Post;
import javax.ws.rs.Consumes;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core UriInfo;
import javax.ws.rs.core.UriBuilder;
@Path ("items")
@Produces (MediaType.APPLICATION_XML)
@Context UriInfo uriInfo;
Items listItems() {
Return Allitems();
}
@POST
@Consumes
(MediaType.APPLICATION_XML)
Public Response create(Item item) throws ItemCreationException {
Item newItem = createItem(item);
URI newItemURI = uriInfo.getRequestUriBuilder().path(newItem.getId()).build();
return Response.created(newItemURI).build();
}
...
}