JAX-RS Web 服务
REST 软件架构基于具象资源传输。RESTful Web 服务提供了一些优势:简单、轻量
级、快速。RESTful Web 服务公开了一组由 URI 标识的资源。资源将根据 HTTP 方法
GET、POST、PUT 和 DELETE 作出响应。资源可通过各种形式访问,如 HTML、普通
文本、XML、PDF、JPEG 或 JSON。Java API for RESTful Web 服务 (JAX-RS) 在 JSR
311 中定义。Jersey 是 JAX-RS 的参考实现,简化了 Java 中 RESTful Web 服务的开
发。
在为 JAX-RS Web 服务创建客户端之前,需要对环境进行设置。
1. 下载一个 jee 版的 eclipse。
2. 下载 Jersey 压缩文件 jersey-archive-1.4.zip,其中包含 Jersey JAR 和核心依赖
文件。下载 Jersey 包 JAR jersey-bundle-1.4.jar。
Jersey 是使用 JDK 6.0 构建的,因此还需要安装 JDK 6.0。
3. 安装 Web 服务器,如 Tomcat,或应用程序服务器,如 WebSphere®,或
WebLogic 服务器。将 Jersey JAR 文件添加到应用程序/Web 服务器的运行
时 CLASSPATH 中。
这里我使用的是 Tomcat6.0
C:\Jersey\jersey-bundle-1.4.jar;C:\Jersey\jersey-archive-1.4\lib\asm-3.1.jar;
C:\Jersey\jersey-archive-1.4\lib\jsr311-api-1.1.1.jar
创建一个 Eclipse 项目
在本节中,您将创建一个 Web 项目并将 JAX-RS facet 添加到该项目中。使用以下步骤
创建 Eclipse 项目。
1. 选择 File > New,在 New 窗口中,选择 Web > Dynamic Web Project。单
击 Next。
2. 指定项目名称(例如 AndroidJAX-RS)并单击 New Runtime,为您的 WebSphere、
Tomcat 或 WebLogic 服务器配置一个新的目标运行时。图 1 展示了完成设置的
Dynamic Web Project 窗口。
图 1. 配置一个新的运行时
3. 在 New Server Runtime Environment 窗口中,选择一个服务器,如 Tomcat 服务
器、WebSphere 服务器或 WebLogic 服务器。单击 Next,如图 2 所示。
图 2. 选择一个应用程序或 Web 服务器(这里我使用的是 Tomcat 6.0)
4. 在 New Tomcat 窗口中,配置 JRE 和 Tomcat Installation Directory。单击
Dynamic Web Project 对话框中的 Next。为 Source 文件夹和 Output 文件夹选
择默认的 Java 设置,并单击 Finish。
5. 选择
,如图 3 所示。 图 3.配置 JAX-RS Project Facet
6. 点击 ok 回到 Dynamic Web Project 界面点击 Next。Next 到 JSF Capabilities 界
面。
7. 在 User Libraries 窗口中,单击 New。在 New User Library 对话框中,指定 User
library 名并单击 OK。
将添加一个用户库。单击 Add JARs 以将 Jersey JARs 添加到用户库。如图 4 所
示,添加以下 Jersey JAR:
jersey-bundle-1.4.jar
o
o C:\Jersey\jersey-archive-1.4\lib\asm-3.1.jar
o C:\Jersey\jersey-archive-1.4\lib\jsr311-api-1.1.1.jar
单击 OK。
图 4.添加 Jersey JAR 文件
8. 在 JAX-RS Capabilities 窗口中,指定 JAX-RS servlet 类名
为 com.sun.jersey.spi.container.servlet.ServletContai
ner,如图 5 所示。单击 OK。
图 5.指定 JAX-RS servlet 类
JAX-RS User 库被添加到项目中,JAX-RS servlet 和 servlet 映射在 web.xml 中进行
了配置。需要为
com.sun.jersey.config.property.resourceConfigClass 和 com.s
un.jersey.config.property.packages init 参数添加 init-param 元素。
清单 2 显示了此 web.xml。
清单 2. web.xml
JAX-RS Tools Generated - Do not modify
JAX-RS Servlet
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.config.property.resourceConfigClass
com.sun.jersey.api.core.PackagesResourceConfig
com.sun.jersey.config.property.packages
jaxrs
1
JAX-RS Servlet
/jaxrs/*
创建和运行资源类
下一步是使用一个 root 资源类创建一个 RESTful Web 服务资源。root 资源类是带
有 @PATH 注释的 POJO。它包含至少一个带注释的方法,该注释为 @PATH、@GET、
@PUT、@POST 或 @DELETE。
1. 选择 File > New > Other。在 New 对话框中,选择 Java > Class,然后单
击 Finish。
2. 在 New Java Class 窗口中,如图 7 所示,指定:
o 一个 Source 文件夹:AndroidJAX-RS/src
o 包:jaxrs
o 类名:HelloWorldResource
单击 Finish。
图 7.创建资源类
使用 @PATH 注释标注 Java 类。清单 3 中的代码指定了 URI 路径,Java 类在该路径中
应该托管为 /helloworld。
清单 3.使用 @Path 注释资源类
@Path("/helloworld")
public class HelloWorldResource {
....
}