使用Jersey和Apache Tomcat构建RESTful Web服务

RESTful Web 服务简介

REST 在 2000 年由 Roy Fielding 在博士论 文中提出,他是 HTTP 规范 1.0 和 1.1 版的首席作者之一。

REST 中最 重要的概念是资源(resources),使用全球 ID(通常使用 URI)标识。客户端 应用程序使用 HTTP 方法(GET/ POST/ PUT/ DELETE)操作资源或资源集。 RESTful Web 服务是使用 HTTP 和 REST 原理实现的 Web 服务。通常,RESTful Web 服务应该定义以下方面:

Web 服务的基/根 URI,比如 http://host/<appcontext>/resources。

支持 MIME 类型的响应 数据,包括 JSON/XML/ATOM 等等。

服务支持的操作集合(例如 POST、 GET、PUT 或 DELETE)。

表 1 演示了典型 RESTful Web 服务中使用的 资源 URI 和 HTTP 方法。

表 1. RESTful Web 服务示例

方法/资源 资源集合, URI 如:
http://host/<appctx>/resources
成员资源,URI 如:
http://host/<appctx>/resources/1234
GET 列出资源集合的所有成员。 检索标识为 1234 的资源的表示 形式。
PUT 使用一个集合更新(替换)另一个集 合。 更新标记为 1234 的数字资源。
POST 在集合中创建数字资源,其 ID 是自动分配的。 在下面创建 一个子资源。
DELETE 删除整个资源集合。   删除标记为 1234 的数字资源。

JSR 311 (JAX-RS) 和 Jersey

JSR 311 或 JAX-RS(用于 RESTful Web Services 的 Java API)的提议开始于 2007 年,1.0 版本到 2008 年 10 月定 稿。目前,JSR 311 版本 1.1 还处于草案阶段。该 JSR 的目的是提供一组 API 以简化 REST 样式的 Web 服务的开发。

在 JAX-RS 规范之前,已经有 Restlet 和 RestEasy 之类的框架,可以帮助 您实现 RESTful Web 服务,但是它们不够直观。Jersey 是 JAX-RS 的参考实现 ,它包含三个主要部分。

核心服务器(Core Server):通过提供 JSR 311 中标准化的注释和 API 标准化,您可以用直观的方式开发 RESTful Web 服 务。

核心客户端(Core Client):Jersey 客户端 API 帮助您与 REST 服务轻松 通信。

集成(Integration):Jersey 还提供可以轻松集成 Spring、Guice、 Apache Abdera 的库。

在本文的以下部分,我介绍了所有这些组件,但是更关注核心服务器。

构建 RESTful Web 服务

我将从可以集成到 Tomcat 的 “hello world” 应用程序开始。该应用程序将带领您完成设置环境 的过程,并涉及 Jersey 和 JAX-RS 的基础知识。

然后,我将介绍更加 复杂的应用程序,深入探讨 JAX-RS 的本质和特性,比如多个 MIME 类型表示形 式支持、JAXB 支持等。我将从样例中摘取一些代码片段来介绍重要的概念。

Hello World:第一个 Jersey Web 项目

要设置开发环境,您需 要以下内容:

IDE:Eclipse IDE for JEE (v3.4+) 或 IBM Rational Application Developer 7.5

Java SE5 或更高版本

Web 容器: Apache Tomcat 6.0(Jetty 和其他也可以)

Jersey 库:Jersey 1.0.3 归档,包含所有必需的库

时间: 2025-01-19 12:08:09

使用Jersey和Apache Tomcat构建RESTful Web服务的相关文章

使用 Spring 3 MVC HttpMessageConverter 功能构建 RESTful web 服务

原文地址:http://www.ibm.com/developerworks/cn/web/wa-restful/ 简介: Spring,构建 Java 平台和 Enterprise Edition (Java EE) 应用程序的著名框架,现在在其模型-视图-控制器(Model-View-Controller ,MVC)层支持具象状态传输 (REST).RESTful web 服务根据客户端请求生成多个具象(representations)很重要.在本篇文章中,学习使用 HttpMessageC

使用Spring Boot构建RESTful Web服务以访问存储于Aerospike集群

Spring Boot是对Spring快速入门的强大工具.Spring Boot能够帮助你很容易地构建基于Spring的应 用. Aerospike是分布式和可复制的内存数据库,不管使用DRAM还是原生的flash/SSD,Aerospike都进行 了优化. Aerospike具有高可靠性并且遵循ACID.开发人员能够在不停止数据库服务的情况下,很快地将 数据库集群从两个节点扩展到二十个节点. 你所要构建的是什么 本文将会引领你使用Spring Boot创建一个简单的RESTful Web服务.

用 Jersey 2 和 Spring 4 构建 RESTful web service

本文介绍了如何通过 Jersey 框架优美的在 Java 实现了 REST 的 API.CRUD 的 操作存储在 MySQL 中 1. 示例 1.1 为什么 Spring 可以对于 REST 有自己的实现(见 https://spring.io/guides/tutorials/rest/). 但本文展示的是用 "官方" 的 方法来实现 REST ,即使用 Jersey. 1.2 它是做什么的? 管理 资源. REST API 将允许创建.检索.更新和删除这样的资源. 1.3 架构及技

使用Apache Wink、Eclipse和Maven开发RESTful Web服务

简介:Apache Wink 是 Java API for RESTful Web Services (JAX-RS) 规范的一个开源实现 .了解如何使用 Apache Wink.Eclipse IDE 以及 Maven 项目管理工具开发.部署和运行 RESTful Web 服务. Apache Wink 是一个促进创建和使用 REST Web 服务的 Apache 孵化器项目.通过 REST Web 服务,客户机和服务之间的交互局限于一组预定义的操作,客户机和服务器之间的交互的复杂性限制 为客

使用GWT和RESTful Web服务构建动态的组织树

简介 最近几年,Web 应用程序开发的潮流是创建富 Internet 应用程 序,其中大多数是使用 Asynchronous JavaScript + XML (Ajax) 实现的.但是 ,由于编写 JavaScript 代码比较复杂,这种方法并不容易,尤其是很难构建大 型 Web 应用程序.因此出现了 GWT:它让我们能够使用 Java 编程而不是 Ajax 构建功能丰富的响应性的 Web 界面.GWT 还提供 Java 开发的所有优势,比如 出色的 IDE 支持和高级调试功能.GWT 可以显

在Apache Geronimo中部署Web服务

要确定某个应用服务器是否支持 Web 服务开发工作吗?Apache Geronimo 应 用服务器完全可以满足这一要求,它是 Apache Software Foundation 的最新项 目之一.Java 专家 Kunal Mittal 将通过演示如何在 Geronimo 中编写 和开发标准 J2EE Web 服务代码,向您介绍 Geronimo 的 Web 服务功能.您将学 会如何根据底层简单对象访问协议(SOAP)实现使用 Apache Axis,从而使用 Amazon Web 服务,并且

java-使用http post如何传递多参数到restful web服务?

问题描述 使用http post如何传递多参数到restful web服务? 我创建了俩个数组参数和Objects数组,我想传递它们,我可以用下面的方法吗? @POST @Path("Test3") @Produces("text/plain") @Consumes({"application/json"}) public String Test3(String[] id1,String[] id2 ,Object [] oo) { String

分享一个Android和java调用RESTful Web服务的利器Resting

分享一个Android和java调用RESTful Web服务的利器Resting   当我们调用Web服务,往往是最终目标是取HTTP响应,将其转化为将在应用中呈现的值对象.Resting可以用来实现这一功能.Resting,在Java的一个轻量级的REST框架,可用于调用一个RESTful Web服务,并转换成响应来自客户端应用程序定制的Java对象.由于它的简单,resting是适合Android等手持设备.   resting目标•暴露简单的get(),post(),put()和dele

使用 Eclipse 在 Google App Engine 上创建 mashup,第 3 部分: 使用 RESTful Web 服务

使用社会网络可以更轻松地获取并聚合数据,从而创建富有革新精神的新 Web 应用程序.但是,仍然必须处理创建可伸缩 Web 应用程序的所有常见问题.现在,使用 Google App Engine (GAE) 也可以简化工作.使用 GAE,可以不必考虑管理应用服务器池的所有事务,而是集中精力创建优秀的 mashup.本文是共分三部分的系列文章 "使用 Eclipse 在 Google App Engine 上创建 mashup" 的最后一部分,在本文中,将利用并进一步增强在前两部分中构建的