使用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 服务,客户机和服务之间的交互局限于一组预定义的操作,客户机和服务器之间的交互的复杂性限制 为客户机和服务之间交换的资源表示。这种方法支持构建可互操作、可伸缩、可靠的、基于 REST 的分布 式超媒体系统。

常用缩略词

API: 应用程序编程接口

HTTP: 超文本传输协议

IDE: 集成开发环境

JSON: JavaScript 对象符号

REST: 具象状态传输

URI: 统一资源标识符

XML: 可扩展标记语言

本文介绍如何使用 Apache Wink、Eclipse IDE 以及 Maven 项目管理工具开发、部署和运行 RESTful Web 服务。

Web 服务的 REST 方法

设计 Web 服务的 REST 方法将客户机和服务之间的交互限制到一组创建、读取、更新和删除(CRUD) 操作。这些操作直接映射到 HTTP 方法 — 具体而言,映射到 POST、GET、 PUT 和 DELETE。尽管 RESTful 样式没有绑定到 HTTP 协议,本文假设 HTTP 用于客户机和服务之间的通信。

REST Web 服务在资源上执行 CRUD 操作。客户机使用资源状态的 REST 服务表示进行交换。这些表示 使用的数据格式在 HTTP 请求或响应的头部中指定 — XML 和 JSON 是广泛使用的格式。数据格式可能在 不同操作之间发生变化;例如,创建资源的数据格式与用于读取资源的数据格式不同。REST 服务保持资 源的状态,但 — 与 servlets 不同的是 — 不保持客户机会话信息。

REST 方法支持构建可互操作、可伸缩和可靠的基于 REST 的分布式系统。例如,GET、POST 和 DELETE 方法是等幂的,即多次执行它们与执行一次的结果相同。由于 GET 操作不会更改资源的状态,因 此 GET 请求的结果可以缓存起来以加快 “请求-响应” 循环。

JAX-RS 为基于 HTTP 协议的 RESTful Java Web 服务定义了一个 API。JAX-RS 实现包括 Apache Wink、Sun Jersey 和 JBoss RESTEasy。本文将使用 Apache Wink。

JAX-RS 利用 Java 注释的威力,使用注释来执行诸如以下的操作:

将 HTTP 方法和 URIs 绑定到 Java 类的方法

将来自 URI 或 HTTP 头部的元素作为方法参数注入

在 HTTP 消息体和 Java 类型之间来回转换

将 URI 模式绑定到 Java 类和方法 — @Path 注释

将 HTTP 操作绑定到 Java 方法 — @GET、 @POST、@PUT 和 @DELETE 注释

JAX-RS 还提供了一个框架来构建新功能。例如,对于自定义数据格式,程序员可以开发消息阅读器并 将 Java 对象编组到 HTTP 消息并从 HTTP 消息解组它们。

在本文中,您将使用 Eclipse 和 Maven 下载 Apache Wink,运行 Apache Wink 中包含的 HelloWorld 示例,然后将您自己的 REST Web 服务创建为一个 Eclipse 项目。

通过 Eclipse 获取 Apache Wink

在这个小节中,您将使用 Eclipse 以及 Maven Integration for Eclipse(称为 m2eclipse)和 Subclipse 插件来安装 Apache Wink。(M2eclipse 提供从 Eclipse 对 Maven 的访问;Subclipse 提供 对 Subversion 资源库的访问。)您还可以将 Eclipse 用作一个平台,从这个平台构建并运行 Web 服务 。

时间: 2024-08-04 07:58:09

使用Apache Wink、Eclipse和Maven开发RESTful Web服务的相关文章

使用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 服务应该定义

使用Apache Wink和Ajax构建富Java Web应用程序

本文将介绍 Apache Wink,演示如何安装它,并附带一个简单的管理任务列 表的 RESTful Web 服务.本文的示例基于 Apache Wink 发行版携带的 Bookmarks 示例.尽管如此,本文中的示例使用了不同的消息格式,可以使用 Asynchronous JavaScript + XML (Ajax) 从 Web 页面轻松调用,从而丰富了用 户体验. REST 和 Ajax RESTful Web 服务通过使用某种 URL 结构公开,并提 供了一个简化的接口来对 Web 服务

Eclipse 使用 Maven 构建动态 Web 工程,默认无 java 目录的解决方法

Eclipse 使用 Maven 构建动态 Web 工程,默认无 java 目录的解决方法 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备.绿色教育的研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 两年前,在病重的那些日子里,把有关 Mav

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

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

springmvc-求助:Springmvc+mybatis+maven开发的web应用,局域IP不可以

问题描述 求助:Springmvc+mybatis+maven开发的web应用,局域IP不可以 5C Springmvc+mybatis+maven开发的web应用,启动后,本机可以访问,外部不可以. 本机有Springmvc+mybatis+maven开发的项目A,以及,struts2+spring+mybatis+maven的项目B.两个项目都是使用配置相同的jetty插件启动,本机访问都正常.问题是:项目A,启动后,局域网的同事通过IP无法访问,经过telnet检查,发现端口不通.但是可以

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

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

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

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

分享一个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使用debug模式启动web服务报错

问题描述 eclipse使用debug模式启动web服务报错,使用run方式就正常.报错异常如下:SEVERE: Catalina.start: org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)at org.apache.cata