安装 AWS 插件套件
与安装其他 Eclipse 插件一样,要想安装 Amazon 的 AWS 插件,必须在 Eclipse 中通过 Help > Install New Software 找到插件的最新版本。Install 对话框打开之后,在 Work with 文本框中输入 http://aws.amazon.com/eclipse。文本框下面会出现可用插件列表,见图 1。选择整个 AWS Toolkit for Eclipse 选项,然后单击 OK。接受许可协议之后,Eclipse 安装这个插件。很可能需要重新启动 Eclipse。
图 1. 下载 AWS 插件
这个 Eclipse 插件允许指定 Web 应用程序的目标运行时环境。对于本文,将使用 Tomcat 6,所以需要先 下载 并安装 Tomcat 6。尽管将把 Web 应用程序部署到 EC2 上,而 EC2 运行一个 Tomcat 服务器集群,但是仍然希望在本地测试和运行应用程序,因为这是免费的。
创建 Groovy Web 应用程序
在开始演示如何配置 EC2 之前,先用我最喜欢的快速开发语言 Groovy 创建一个简单的 Web 应用程序。正如我在 “使用 Google App Engine” 中提到的,Groovy 本质上是 Java 语言,但是语法没那么复杂(见 参考资料)。例如,典型的 Hello World servlet 大约有 6 到 10 行 Java 代码(取决于是否计算导入语句等)。无论如何计算代码行数,我可以保证用 Groovy 编写的 Hello World servlet(Groovlet)更短;实际上,可以用 Groovy 编写的最简单的 servlet 只有一行代码。
在 Eclipse Java EE 透视图中,在 project explorer 中右键单击并选择 New > Dynamic Web Project。如果您以前没有创建过项目,也不必担心 — Eclipse 可以区分静态的 Web 项目(使用 HTML 页面)和动态项目(有 servlet 等服务器端资源)。
选择 Dynamic Web Project 选项之后,出现一个对话框,可以在其中配置项目的各个方面,比如目标运行时环境和 Servlet 版本。一定要选择 Tomcat 6。(可能还需要告诉 Eclipse 安装 Tomcat 6 的位置)。配置选项保持默认设置。
可以选择保存源代码文件的位置。我通常保持其为 src 目录不变。最后,必须告诉 Eclipse 上下文根 — 也就是将在 Web 应用程序的 URI 中使用的名称。一定要选择一个简单的名称。还需要为 Web 内容文件夹选择名称,这里保存静态文件和 Groovlet。
单击 Finish,插件的安装就完成了。
设置 Groovy 依赖项
要想使用 Groovy,必须做两个修改。首先,在项目的类路径中添加 groovy-all JAR(到编写本文时版本是 1.6.4)。还需要更新 WEB-INF 目录中的 web.xml 文件。这个文件把 Web 请求映射到 Groovlet — 如果您按 Java 开发 2.0:使用 Google App Engine 实践过,应该执行过这个步骤。web.xml 文件应该像清单 1 这样:
清单 1. 支持 Groovlet 的 web.xml 文件
<servlet-name>GroovyServlet</servlet-name>
<servlet-class>groovy.servlet.GroovyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GroovyServlet</servlet-name>
<url-pattern>*.groovy</url-pattern>
</servlet-mapping>
现在,可以用 Groovy 编写一些东西了。
编写 Groovlet
最简单的 Groovlet 只有一行,它使用 println 输出 “Hello World”。我们将用一些 HTML 代码增加一些情趣。Groovy 支持 Builder 的概念,Builder 是用于定义层次化数据结构的逻辑机制(见 参考资料)。可以使用 Groovy 的 Builder 简便地模仿 XML 和 HTML 等标记语言,甚至是模仿 Swing 等框架的 GUI。可以快速地创建 HTML 标记,而不需要处理 HTML(不需要尖括号!)。最简单的使用 HTML 的 Groovlet 使用 Groovy 的 MarkupBuilder,在这种情况下 Groovlet 以 html 变量的形式存在。例如,清单 2 给出一个使用 HTML 的简单的 Hello World Groovlet:
清单 2. 非常简洁的 Groovlet
head {
title("Hello from EC2")
}
body {
p("Hello from EC2!")
}
}
代码就这么多。仅仅几行代码就会生成格式良好的 HTML,其中有一个 元素,后面是<title>,然后是 <body> 元素和一个段落,太简单了。创建文件 EC2Groovlet.groovy,在其中输入清单 2 中的代码。把这个文件也保存到 Web 内容目录中。
希望创建 XML?很容易。不想让视图与控制器混在一起?没问题,使用 GroovyServer Page (GSP) 或 JavaServer Page (JSP) 就可以。无论您喜欢哪种方式,用 Groovy 编写 servlet 都非常容易。现在看看在 EC2 上使用 servlet 是多么容易。
作为最后一步,在项目的上下文根中创建一个简单的 index.html 文件。这个文件会给以后提供方便,因为在 Eclipse 中访问 EC2 时,Eclipse 访问的 URL 是上下文根;如果没有找到 index.html 文件,就会收到来自 Tomcat 的错误页面。在 index.html 中创建 Groovlet 的相对链接。
例如,我的 index.html 像清单 3 这样:
清单 3. 指向 Groovlet 的简单 index.html
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert any old title here!</title>
</head>
<body>
<p><a href="EC2Groovlet.groovy">Groovy is slick!</a></p>
</body>
</html>
容易的工作完成了。现在看看 EC2。
配置 EC2
很容易通过 Eclipse 插件配置 EC2。首先,打开 Amazon EC2 透视图,输入您的凭证。接下来,打开 Window > View > Servers。需要定义至少一个服务器,但是我们将定义两个服务器:一个在本地用于免费测试,另一个在 Amazon 的基础设施上。右键单击并选择 New > Server。
在 Select the server type 文本框中输入 local。会看到几个选择(见图 2)。选择 Tomcat v6.0 Server 选项(假设您已经按照 EC2 入门 中的说明下载了 Tomcat 并在 Eclipse 中正确地配置了运行时环境)。单击 Next,会看到在这个实例中添加可用资源(即项目)的选项。选择您的项目并单击 Add 按钮。单击 Finish 就完成了。现在可以自动地把 Web 项目发布到 Tomcat 的本地实例。
图 2. 定义本地服务器
在 Servers 控制台上,选择本地 Tomcat 实例,右键单击并选择 Start。Tomcat 启动之后,Eclipse 会部署您的代码(即您的 Groovlet)。启动 Web 浏览器,访问 localhost:8080/your context name/EC2Groovlet.groovy,应该会看到 Groovy Builder 生成的 HTML 页面。如果一切正常,就该在 Amazon 的基础设施上试试它了。