使用SpringSource Tool Suite 2.3.3.M1结合Roo和GWT

工程 | Christian Dupuis | 2010年6月2日 | ...

到目前为止,你们中的大多数人可能已经听说过Google I/O上关于Spring、Roo、STS和GWT的公告。BenRod分别在他们最近的博客文章中对此进行了报道。如果您错过了主题演讲,我强烈建议您观看YouTube上的录制视频以了解详情(相关部分从录制视频的1:09:00开始)。

今天,我想提供一些详细的步骤和说明,关于如何使用Roo和STS创建您的第一个GWT应用程序。

安装

在我们启动Roo shell并开始键入命令之前,我们需要下载并安装所有先决条件。尽管构建可在云端运行的先进单页应用程序涉及许多组件,但您实际上只需要下载适合您操作系统的STS 2.3.3.M1捆绑包即可。STS安装包含Roo 1.1.0.M1、tc Server Developer Edition with Spring Insight(需要获得Speed Tracer集成)、Maven 2.2以及对Google Plugin for Eclipse (GPE)的访问。

  1. springsource.com下载STS 2.3.3.M1。
  2. 运行安装程序或解压缩下载的归档文件。按照安装说明进行操作。
  3. 启动STS并打开仪表板(“帮助”->“仪表板”)。
  4. 从仪表板的“扩展”选项卡中安装“Google Plugin for Eclipse”和“DataNucleus Plugin”。
  5. 出现提示时重新启动。

创建GWT脚手架应用程序

安装STS后,我们就可以启动Roo并创建我们的应用程序了。如果您想查看主题演讲中使用的应用程序,请按照以下步骤操作

  1. 在您的操作系统命令提示符下,创建一个新的空目录并切换到该目录。
  2. 键入“roo”并按Enter键启动Roo 1.1.0.M1。查看Roo启动时在shell banner中显示的版本号。它应该显示“1.1.0.M1 [rev 3a0b8a3]”。为了方便起见,Roo已与STS安装在同一文件夹中。
  3. 输入“script expenses.roo”。这将运行提供的Roo脚本并创建Ben在主题演讲中使用的基本费用跟踪示例应用程序。
  4. 键入“quit”退出Roo shell。

到目前为止,您已经拥有了一个完全可用的Spring和GWT 2.1应用程序。请随意查看Roo为您生成的代码。如果您想了解有关此GWT应用程序基础架构的更多信息,我推荐Ray Ryan的Google I/O研讨会。查看I/O网站上提供的研讨会录制视频和幻灯片。

运行应用程序

感谢Roo,您可以轻松地在本地运行生成的应用程序。如果您的系统上安装了Maven,只需在操作系统命令提示符下键入“mvn gwt:run”。只需确保您仍在创建项目的同一目录中即可。这将启动GWT开发模式,您可以从中轻松地在浏览器中加载GWT应用程序。为了使用GWT开发模式,您需要安装相关的浏览器插件。如果尚未安装插件,您的浏览器会提示您安装。

将项目导入STS

我们与Google的Google Plugin for Eclipse (GPE)团队合作,增强了STS,以便您可以轻松地获取创建的Roo项目并将其导入到您的Eclipse环境中。STS将自动配置您的项目,以便它可以与内置的Maven和GWT支持一起使用,而无需离开您的IDE。

从STS使用“文件”->“导入...”->“Maven”->“现有Maven项目”导入项目。这将自动配置所有必需的项目设置,安装类路径容器并启动Roo shell。

从STS内部运行应用程序

使用Google的GWT工具,现在可以非常轻松地从STS内部启动应用程序。这允许您调试服务器端代码,但更有趣的是,还可以调试前端GWT Java代码。从项目的上下文菜单中选择“调试方式”->“Web应用程序”。请选择“ApplicationScaffold.html”html页面以启动并单击“确定”。只需确认“WAR目录选择”对话框以接受默认设置。

在“控制台”视图中,您现在可以看到嵌入式GWT开发模式正在启动。此外,GPE的“开发模式”视图将出现,使您可以轻松访问启动的应用程序。请参见下面的屏幕截图。

GWT Development Mode

此时,请随意添加断点并使用Eclipse调试器来熟悉生成的应用程序。

为了尝试Roo出色的往返支持,请打开“Employee”Java源文件并添加一个新字段。例如,添加一个“private String comment”字段并保存文件。请注意,Roo将立即更新GWT应用程序以在UI和后端代码中都包含新字段。您可以从“Roo Shell”视图中观察到这一点。请注意,STS集成包含Roo编辑的文件的链接,以便您可以打开它们并查看更改。

Roo Shell

如果您此时仍在运行开发模式服务器,请打开“开发模式”视图并单击视图工具栏中的“刷新”图标。深呼吸大约2到3秒后,返回浏览器并单击“刷新”。导航到“Employee”屏幕,并注意UI上新添加的字段。您可以通过创建一个新的Employee并填写“comment”字段来验证服务器代码是否已完全刷新(包括正确的持久性)。

部署到Google App Engine

我们收到了一些关于如何将脚手架应用程序部署到Google App Engine的问题;以及它是否可以在GAE上运行。当然可以,并且可以在此处进行测试。

部署非常简单,可以在STS内部或从命令行完成。在以下部分中,我将展示如何从命令行部署到GAE。

  1. 首先,您可能希望从示例应用程序使用的内存中Hypersonic数据库切换到基于BigTable的Google Datastore。为此,从命令行启动Roo shell并执行以下命令:“persistence setup --database GOOGLE_APP_ENGINE --provider DATANUCLEUS”。
  2. 接下来,我们需要指定GAE应用程序名称。这可以通过编辑“src/main/webapp/WEB-INF/appengine-web.xml”文件来完成。请将应用程序名称设置为GAE帐户中的现有应用程序。或者,您可以在键入“persistence setup”命令时通过“--applicationId”选项指定应用程序名称。
  3. 部署到GAE现在只需运行“mvn gwt:compile gae:deploy -DskipTests”(“-DskipTests”仅在Roo 1.1.0.M1中需要。这已修复,在Roo 1.1.0.M2中将不再需要)。

我希望这些说明和步骤对您有所帮助,并鼓励更多人尝试Roo对GWT的支持。请记住,GWT、Roo和STS都处于里程碑1阶段,因此您实际上可能会遇到限制或意外问题。在这种情况下,请在Spring社区的RooSTS论坛上发帖。我们,SpringSource和Google工程师,很乐意提供帮助,并期待您的反馈。

获取Spring通讯

与Spring通讯保持联系

订阅

领先一步

VMware提供培训和认证,以加快您的进步。

了解更多

获取支持

Tanzu Spring在一个简单的订阅中提供OpenJDK™、Spring和Apache Tomcat®的支持和二进制文件。

了解更多

即将举行的活动

查看Spring社区中所有即将举行的活动。

查看全部