使用sqlRest将数据库转换为REST风格的Web服务 - 编程入门网
到不编写代码测试 REST 服务的目的。
使用sqlRest将数据库转换为REST风格的Web服务(5)时间:2011-02-15 IBM 赵勇REST 服务的自动化测试方法 实际项目中,我们总是希望有一些自动化的方法, sqlRest 的源码中已经提供了基于 JUnit 和 Apache Common HTTP 的自动化测试代码,读者可以参考源码包中的 MainServletTest 类。这是一个 JUnit 测试用例,覆盖了对 sqlRest 服务的各种测试,通过运行该测试用例,我们就实现了对 sqlRest 服务的全面测试。该测试用例使用了 Apache Common HTTP 包和 JUnit 包一起,来自动化的测试 REST 服务。在读者使用其它 RESTRest 框架时,这种测试方法也是有效的。我们也可以在项目中使用 ANT 的脚本来自动的运行 JUnit 的测试,这样就获得了更为全面的自动化的测试能力,使用 ANT 这样的脚本工具,您可以获取从编译到部署再到测试的全方位的自动化能力。读者可以参考 MainServletTest 中的代码构建基于 JUnit 和 Apach Common HTTP 的自动化测试。 AJAX 测试方法 显然 REST Service 并不是全部要面向 Java 客户端的,实际的项目中,很多的 Web 2.0 的解决方案后台会使用 REST 服务来提供资源,我们完全可以定义一个简单的 AJAX 客户端(任何客户端本来就具有对服务器端测试的潜在能力)来进行 Rest 服务的测试,虽然最终的效果看起来也许和 Poster 差不多,但是我们的 AJAX 测试是具有业务逻辑的测试,也是一种高级的测试形态。一个典型的例子是我们会在页面中使用 AJAX 方法获取远程的 REST 资源,然后展现给用户。 配置基于 DB2 的 sqlRest 服务 准备数据库和配置文件 笔者使用的是 DB2 8.2 版本。我们将使用 DB2 数据库的 sample 数据库,如果您 DB2 没有配置,您可以通过在 DB2 的命令行中运行 DB2sampl 命令来安装示例数据库, 为简化配置,我们使用本机数据库(DB2 和 Tomcat 在一台机器上), 我们的示例将演示如何将 Sample 数据库中的 EMPLOYEE 表中的数据配置为 REST 服务的资源。 找到 sqlrestconf.xml 将内容修改为如清单 3: 清单 3:sqlRest 连接 DB2 的配置文件
这里的用户名和密码请使用读者自己的 DB2 用户名和密码配置。请到 DB 的安装目录下找到 jdbc 驱动程序,例如笔者的目录: D:\Program Files\IBM\SQLLIB\java,拷贝 db2jcc.jar 和 db2jcc_license_cu.jar 到 sqlRest 项目的 WEB - INF 的 lib 目录下,并重新部署。 启动和测试 当配置文件和 DB2 数据库客户端准备完成后,重新部署后我们可以在 Tomcat 控制台中看见 “ Wrong table name ”的错误,启动失败,是什么原因呢?这就因为目前 sqlRest 还在开发过程中,有些功能的发展还不太完善,我们已经在前文提到过,sqlRest 必须要一个主键来表示表中的数据资源,而我们的 Sample 数据库中很多的表没有主键或者主键不满足条件。只有数据库中的表满足 sqlRest 的要求,引擎才能通过 URL 找到唯一的资源,因此为了示例的方便,我们需要对 Sample 数据库做一些调整: 删除您的 Schema 下无用的表:仅保留 EMPLOYEE 表; 给 EMPLOYEE 表增加主键(EMPNO); 修改后的表如图 8 所示: 图 8. 增加了主键的 EMPLOYEE 表 此时部署运行,一切正常,在浏览器中 http://localhost:8080/sqlrest 我们将看见系统 EMPLOYEE 表作为 REST 资源暴露出来。 通过这个简单的例子我们认识到 salRest 可以很容易的配置为支持各种数据库,读者也 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |