简介
最近几年,Web 应用程序开发的潮流是创建富 Internet 应用程 序,其中大多数是使用 Asynchronous JavaScript + XML (Ajax) 实现的。但是 ,由于编写 JavaScript 代码比较复杂,这种方法并不容易,尤其是很难构建大 型 Web 应用程序。因此出现了 GWT:它让我们能够使用 Java 编程而不是 Ajax 构建功能丰富的响应性的 Web 界面。GWT 还提供 Java 开发的所有优势,比如 出色的 IDE 支持和高级调试功能。GWT 可以显著提高生产力并丰富用户的体验 。在本文中,我要解释如何在 Eclipse 中构建 GWT 应用程序,以及如何使用 GWT Tree 和 TreeItem 部件为 University Corporation of Atmosphere Research (UCAR) 创建一个示例组织结构。我要解释如何实现惰性装载、如何与 RESTful Web 服务集成以及如何实现 GWT 回调和定制的异常。使用 JSON 作为 RESTful Web 服务的数据格式。
软件需求
首先,需要下载以下软件包,按照相应网站上的安装指南安装它们。
Eclipse IDE for Java EE Developers Galileo (Eclipse 3.5)
GWT 2.0
GWT plug-in for Eclipse
MySQL 5.1 或 DB2 Express-C
Tomcat 6.x
RESTful Web 服务
RESTful Web 服务为 GWT 客户 机提供组织数据。在本文中,我不讨论实现 RESTful Web 服务的步骤;您只需 设置数据库并把 WAR 文件部署到 Tomcat 服务器上。可能还需要在配置文件中 修改几个数据库属性,比如数据库主机、登录名和密码。
设置数据库
我使用 MySQL Community Server 5.1 作为本文的数据库 。但是,也可以使用 DB2 Express-C 等其他数据库在您选择的主机上下载并安 装它(如果还没有这么做的话)。然后创建数据库 gwtresttutorial 和用户 gwtresttutorial,密码为 gwtresttutorial。连接 gwtresttutorial 数据库并 作为 gwtresttutorial 登录。从 下载 部分下载 sql 脚本,运行脚本以创建表 并在表中插入数据。
对于让 RESTful Web 服务服务器连接 DB2 Express-C 或其他 DB2 系列数据库,所用的配置与清单 1 中的 MySQL 配置非 常相似,只需做以下修改:
使用 com.ibm.db2.jcc.DB2Driver 作为 driverClassName。
使用 jdbc:db2://<host>:<port>/<database_name> 作为 URL, 其中的 host 是安装 DB2 Express-C 的主机的名称,port 是用于访问数据库的 端口号,database_name 是数据库实例的名称。
把 DB2 Express-C 安装 目录中的 db2jcc.jar 和 db2jcc_license_cu.jar 文件复制到 WEB-INF/lib 目 录。
可能需要修改下载的 setup.sql 脚本,改用 DB2 语法。
把 WAR 文件部署到 Tomcat 服务器
从 下载 部分下载 WAR 文件并把它保存 到 Tomcat 文件夹 <TOMCAT_HOME>/webapps 中,其中的 TOMCAT_HOME 是 安装 Tomcat 服务器的位置。
把 WAR 文件部署到 <TOMCAT_HOME>/webapps 目录之后,如果 Tomcat 服务器正在运行,它会 把 WAR 文件解压为 gwtRESTTutorial 文件夹。检查 <TOMCAT_HOME>/webapps/gwtRESTTutorial/WEB-INF/classes /applicationContext.xml(清单 1),确保 dataSource bean 的配置值与 MySQL 数据库所用的值匹配。注意,如果做了任何修改,可能需要重新启动 Tomcat 服务器。
清单 1. 在 applicationContext.xml 中配置 dataSource bean
1. <bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"& gt;
2. <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
3. <property name="url" value="jdbc:mysql://localhost:3306/gwtresttutorial"/>
4. <property name="username" value="gwtresttutorial"/>
5. <property name="password" value="gwtresttutorial"/>
6. </bean>