Ben Corrie

校友
博客文章作者Ben Corrie

在 SpringSource dm Server 中部署 GWT 应用 - 第三部分

工程 | 2008 年 12 月 19 日 | ...

引言

这是系列三篇博客中的最后一篇,描述了在 SpringSource dm Server™ 中构建和部署 GWT 应用的逐步方法。第一篇博客介绍了从 GWT 示例应用创建简单 WAR 文件的过程,第二篇博客将 GWT 依赖项转变为可在多个应用之间共享的 OSGi Bundle。最后一篇博客将使用 Spring Dynamic Modules 进一步将我们的 GWT 示例模块化为 OSGi 服务。这将清楚地展示 OSGi 模块化的优势:能够在运行时移除和替换服务,无缝管理多个版本的 Bundle,以及使用 dm Server 进行部署和管理是多么直接简单。

这是本系列中唯一一篇实际使用 Spring Framework 的博客。Spring 用于配置 Spring Dynamic Modules,以及发布和消费 OSGi 服务。它还演示了将 Spring 管理的 Bean 与 GWT 远程调用连接起来的一种机制。然而,我清楚地知道 Spring/GWT 集成本身是一个重要主题,因此我在这里有意只讨论这一个简单的解决方案。

请参阅第一部分,了解 GWT StockWatcher 示例和我使用的软件的背景信息。

另外请注意,你可以跳过所有这些繁琐的说明,直接跳到…

在 SpringSource dm Server 中部署 GWT 应用 - 第二部分

工程 | 2008 年 11 月 24 日 | ...

引言

这是系列三篇博客中的第二篇,描述了在 SpringSource dm Server™ 中构建和部署 GWT 应用的逐步方法。第一篇博客介绍了从 GWT 示例应用创建简单 WAR 文件的过程。接下来的这篇博客将介绍如何将我们在第一部分中创建的 WAR 文件转变为一个“共享库” WAR。这意味着我们将把应用的 GWT 依赖项外部化为一个 OSGi Bundle,以便可以由任意数量的 GWT 应用共享。你可以将其视为通过 GWT 远程调用能力扩展我们的 dm Server。

第一部分所述,我在第二篇博客文章中不使用Spring Framework,而是专注于使用SpringSource dm Server™SpringSource Tool Suite部署“纯”GWT。

也请参阅第一部分,了解 GWT StockWatcher 示例和我使用的软件的背景信息。

快速回顾

第一部分中,我们从头开始将 GWT StockWatcher 示例应用构建为一个 Eclipse 项目,然后将代码生成到一个动态 Web 项目中,并将其部署到 dm Server 中。最后,我们将动态 Web 项目导出为一个 WAR 文件,并在 STS 外部进行部署。

此处描述的逐步方法将基于我们在第一部分中完成的工作,而不是从头开始。我们在第一部分中唯一要改变的是移除对gwt-servlet.jar库的显式依赖。

步骤 1:将我们的 GWT 依赖项转变为一个 OSGi Bundle

首先,补充一些背景信息。“共享库”方法的整体概念是利用 OSGi Bundle 之间的显式导入和导出,在 dm Server 内部创建一个依赖项映射。对于像我们的 StockWatcher 示例这样的小型 WAR 文件,这主要是一个有趣的学术练习。然而,考虑到许多商业 Web 项目以大型 WAR 文件形式发布,其中包含了数十甚至数百个依赖的 jar 文件,将这些依赖项拆分成可共享的资源不仅从占用空间的角度来看是合理的,而且还能显著减轻应用的打包、版本控制和维护的痛苦。

好消息是,创建这些依赖项的大部分工作已经完成。 SpringSource Enterprise Bundle Repository 包含了大多数常用库的“Bundle 化”版本。然而,在撰写本文时,我们的 GWT 依赖项就是一个需要你自行转换为 Bundle 的库示例……

在 SpringSource dm Server 中部署 GWT 应用 - 第一部分

工程 | 2008 年 11 月 7 日 | ...

引言

本系列共 3 篇博客,将描述在 SpringSource dm Server™ 中构建和部署 GWT 应用的逐步方法。博客的重点如下:
  1. 在 dm Server 中将 GWT StockWatcher 示例应用构建并部署为 WAR 文件,使用 SpringSource Tool Suite 从头开始构建。
  2. 使用“共享库”方法进行部署:如何从 WAR 中移除 GWT 依赖项,并将它们作为 OSGi Bundle 部署到 dm Server 中。
  3. 使用“共享服务”方法进行部署:我们将单个 WAR 文件转换为 OSGi 服务,这些服务可以由其他应用共享并进行热插拔。
值得注意的是,我在前两篇博客中都没有使用Spring Framework。Spring 和 GWT 之间的集成本身就是一个主题,我想尽量让每篇博客都尽可能聚焦。在第三篇博客中,我将展示如何使用 Spring 发布和消费 OSGi 服务,以及如何将其与 GWT 集成。

背景

本博客将采用实用的逐步方法构建此处描述的 GWT StockWatcher 示例。Google 教程将引导你完成使用 RPC 从头开始构建 GWT 示例所需的步骤。我将在讲解过程中引用教程中的页面,并讨论各种方法的优缺点。

本博客假设你已经安装了 SpringSource Tool Suite 1.1.1 (我使用的是 Eclipse 3.4 版本)、 dm Server 1.0.0GWT 1.5。它还假设你对 Java 编程有深入理解,并对 Javascript 和 Ajax 有基本了解。

为了演示中使用的路径,我在以下位置创建了一个新的 Eclipse 工作空间:/Users/bcorrie/gwt/workspace。我在下面包含了你可以下载的压缩项目,其中包含一个GWT_ROOT_INSTALL我定义的变量。要使用我的项目,导入后请导航到“偏好设置” -> “Java” -> “构建路径” -> “类路径变量” 并定义你自己的GWT_ROOT_INSTALL

超越他人

VMware 提供培训和认证,助力你的飞速进步。

了解更多

获取支持

Tanzu Spring 通过一项简单订阅提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

近期活动

查看 Spring 社区的所有近期活动。

查看全部