快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
发现这是一个 Java 项目,可以使用 ANT 的脚本构建出 Web 部署包。但是为了使用和测试方便,我们需要使用 Eclipse 的动态 Web 项目来调试 sqlRest 。此时需要根据已下载的 sqlRest 的二进制包从该 Java 项目的源码创建一个 Eclipse 的 Web 项目(请确认安装了 WTP 插件,笔者使用的是 WTP1.5 版本),本文以下的示例都是基于该 Web 项目的,笔者使用的开发环境是 Eclipse 3.2 和 JDK 1.5,Servlet 容器使用的是 TOMCAT 5.5 。我们创建的 Web 项目名为 sqlrest,读者可以参考图 4 中的项目结构:

图 4. sqlRest 在 Eclipse 中的 Web Project

读者也可以从附件中下载该 project 并导入到 Eclipse 的工作区。当在 Eclipse 中配置好 TOMCAT 服务器后,我们就可以进行进一步的开发和部署。请注意该 Web 项目的 properties 对话框,您需要将 java 编译的结果输出到 WEB-INF 目录下的 classes 目录,如图 5 所示:

图 5. 配置 Java class 的输出

编译后部署该项目,访问 http://localhost:8080/sqlrest,您依然可以看见和图 1 相同的 Web 界面

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

时间:2011-02-15 IBM 赵勇

数据库资源的配置

现在回顾一下图 1 的内容, sqlRest 的示例中包含了 Customer,Product,Invoice 和 Item 4 种 Rest 资源,这四种资源对应着数据库种的 4 张表,sqlRest 会自动的将数据库的记录作为资源通过 RestURL 和服务调用展示出来。现在您可以在浏览器中尝试如下的 URL 来测试这些 Rest 服务。

表 1. 在浏览器中测试 sqlRest 的各种 URL)

在浏览器中键入 REST URL 含义
http://localhost:8080/sqlrest 获取配置数据库的所有资源列表
http://localhost:8080/sqlrest/INVOICE/ 获取所有的 invoice 资源列表
http://localhost:8080/sqlrest/INVOICE/31/ 获取 id 号为 31 的 invoice 资源
http://localhost:8080/sqlrest/CUSTOMER/22/ 获取 id 号为 22 的 customer 资源

我们知道在浏览器中键入 URL 并回车,浏览器会发出 GET 方法的 HTTP 请求,如果使用的是 REST 风格的 URL(且满足服务器端的约定,因为 REST 是一种风格,而不是标准),并且服务器端提供了对应的 REST 服务,此时浏览器相当于在执行 REST 服务的调用,浏览器页面中的内容就是 REST 服务的返回,也就是该 REST URL 对应的 REST 资源的内容。现在您一定很想知道,这些数据是从哪里来的?显然应该来自数据库,它们应该就是 sqlRest 自带的测试数据库中的数据。下面我们将介绍 sqlRest 数据库的配置,通过简单的配置,sqlRest 可以支持直接将数据库的数据资源暴露成 Rest Web 服务接口。

在我们的 Web 项目中,可以发现 WEB-INF 目录下的 sqlrestconf.xml 文件,该配置文件描述了数据库的信息和登录信息,我们如果打开 WEB-INF\lib 目录,我们将发现数据库驱动程序:hsqldb-1-7-1.jar,根据配置文件我们就得知 sqlRest 默认使用的是 hypersonic 数据库,一种嵌入式的 java 数据库。那么测试使用的数据源到底在哪里呢?

研究源码我们发现,MainServlet 类就是 sqlRest 服务的入口,该 Servlet 用于接受指定 URL 的 HTTP 请求,从该 Servlet 的 getDatabaserUrl 方法中我们可以看见数据源的来源,注意代码中的 data 目录,这个就是示例数据的数据来源,我们打开该目录下的 exampledb.script 文件就发现该数据库包含上文提及的 4 张表。因此我们知道 exampledb 有四张表也就是有四种 REST

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号