快速业务通道

使用sqlRest将数据库转换为REST风格的Web服务 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19

使用sqlRest将数据库转换为REST风格的Web服务

时间:2011-02-15 IBM 赵勇

随着 Web 2.0 的 发展,REST(Representational State Transfer)风格的 Web Service 得到普遍的应用,各种 REST 框架如雨后春笋般发展起来。当我们从事 Web 2.0 的实践时,越来越感觉到服务器端的 REST 服务在应对 MIS 一样的信息系统以及和数据库的交互时还存在很大的问题,比如效率低下,重复编码等。

例如,我们假定如下的场景:需要使用 Web 2.0 的技术来实现一个信息管理系统,这个系统的主要的任务就是对后台数据库的业务数据的操作,管理和报表。这样的场景在如财务等这样的业务系统中非常常见。我们可以使用实体 Bean 实现 EJB,再将该 EJB 包装成为 REST 服务,或者使用轻量级的 Hibernate,配合各种 Java 的 REST 框架来实现,但是无论如何都不可避免需要做很多的重复编码,或者要实现大量的数据库操作。既然 REST 将服务看成是资源的服务,那么我们可以认为数据库中的数据也是一种资源。有没有方法直接将它们转化为 REST 服务呢?sqlRest 正是这样一种框架,它是一种高效的轻量级数据库 REST 服务解决方案,可以通过简单配置直接将数据库中的数据暴露成 REST 风格的 Web 服务,并将数据库的 CRUD 操作和 REST 服务的 GET, DELETE, POST, PUT 接口对应起来。

本文将介绍这一框架的配置和运行,并讨论如何测试 REST 服务,最后给出了配置 DB2 实现 DB2 中的资源 REST 化的参考办法,相信会对 Web 2.0 和 REST 服务的开发者带来一定的参考价值。本文的示例基于 Eclipse 3.2 和 JDK1.5,Servlet 容器使用的是 Tomcat 5.5 。

sqlRest 第一步

下载和运行

sqlRest 是 sourceforge 站点上的一个开源项目,它使用一个 Servlet 实现了基于数据库的 REST 引擎,可以自动的将数据库的表映射成 REST 资源,用户可以使用 URL 获取表的内容 (XML 格式),并进行相关操作。

我们首先下载一个二进制的包来运行 sqlRest 示例。您可以通过 http://sourceforge.net/projects/sqlrest/ 访问该项目。在首页上点击下载,进入下载页面下载 sqlrest-0.3.2 版本,这也是目前唯一可用的版本。

下载后解压缩,请先确认安装了 JRE 1.4.1 和 TOMCAT 4.1 以上版本。将解压缩目录内 webapps 目录下的 sqlrest 目录拷贝到 TOMCAT 的 webapps 目录中。启动 TOMCAT,在您的浏览器内键入 http://localhost:8080/sqlrest, (如果您的 TOMCAT 的端口是 8080),您将看见如图 1 的 sqlRest 的 Web 界面:

图 1. sqlRest 初始 Web 界面

该页面描述了数据库中有 4 种可用的 REST 资源,这说明安装成功,我们也就可以开始进一步的工作。

这里读者需要注意,根据 JRE 版本和类型的不同,可能在启动的时候 TOMCAT 会出错(参考如图 2 的错误信息),sqlRest 的 Servlet 无法加载,造成错误的原因是我们下载的 sqlRest 是二进制版本,而编译 sqlRest 的 JRE 和我们运行 Tomcat 的 JRE 之间存在不兼容。解决方法是获取 sqlRest 的源码,在运行环境中重新编译,再将编译的 class 文件拷贝到 Tomcat 中的 webapp/sqlrest/WEB-INF 目录中的 classes 目录下重新启动就可以了。如果选择从源码项目开始编译和部署运行,就可以避免这一错误(TOMCAT 和 Eclipse 使用的是同一 JRE),下面您将了解到如何从 CVS 获取代码并从源码开始编译部署 sqlRest 。

图 2. 不同的 JDK 的兼容性问题引起的启动错误

使用sqlRest将数据库转换为REST风格的Web服务(2)

时间:2011-02-15 IBM 赵勇

从源码运行

sqlRest 在 SourceForge 上的源代码可以通过匿名的 CVS 获取。请先按图 3 的配置方法在 Eclipse 中建立源码仓库。

图 3. sqlRest 的源码仓库的 CVS 配置

检出源码项目后,我们

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号