App Engine Java SDK 包含一个开发网络服务器,用于测试您计算机上的应用程序。该开发网络服务器模拟 App Engine Java 运行时环境及其所有服务,包括数据存储区。Eclipse Google 插件可以在 Eclipse 调试器中运行服务器。您也可以通过命令行运行开发服务器。
如果使用 Eclipse 和 Google 插件,则可以在 Eclipse 调试器中运行开发网络服务器。要按照默认配置运行服务器,请选择运行菜单,调试为 > 网络应用程序。要对服务器的启动方式加以更多控制(如服务器使用哪个端口),请使用“网络应用程序”配置类型新建一个调试配置。有关详细信息,请参阅 Google Eclipse 插件。
您也可以通过命令提示符运行开发网络服务器。用于运行的命令位于 SDK 的 appengine-java-sdk/bin/ 目录中。
如果您使用的是 Windows 系统,则命令如下:
appengine-java-sdk\bin\dev_appserver.cmd [options] war-location
如果您使用的是 Mac OS X 或 Linux 系统,则命令如下:
appengine-java-sdk/bin/dev_appserver.sh [options] war-location
该命令取应用程序的 WAR 目录位置作为一个参数。
要停止网络服务器,请按 Control-C(适用于 Windows、Mac 或 Linux)。
这些命令是操作系统特定的包装脚本,可运行 appengine-java-sdk/lib/appengine-tools-api.jar 中的 Java 类 com.google.appengine.tools.KickStart。
开发网络服务器可以使用您计算机上的一个文件模拟 App Engine 数据存储区。该文件命名为 local_db.bin,它在应用程序的 WAR 目录下的 WEB-INF/appengine-generated/ 目录中创建。(该文件不随应用程序一起上传。)
在网络服务器的多次调用期间,此文件仍然存在,因此当您下一次运行该网络服务器时,您所存储的数据仍可用。要清除数据存储区的内容,请关闭服务器,然后删除此文件。
如数据存储区索引配置中所述,开发服务器可以生成应用程序所需的数据存储区索引的配置,这取决于您测试应用程序时其执行的查询。这样可以在 WAR 下的 WEB-INF/appengine-generated/ 目录中生成名为 datastore-indexes-auto.xml 的文件。要禁用自动索引配置,请在 WEB-INF/ 目录中创建或编辑 datastore-indexes.xml 文件,将 autoGenerate="false" 属性用于 <datastore-indexes> 元素。有关详细信息,请参阅数据存储区索引配置。
开发网络服务器可以使用自己的登录和退出页面模拟 Google 帐户。在开发网络服务器下运行时,生成登录和注销网址的方法将返回本地服务器上 /_ah/login 和 /_ah/logout 的网址。
开发登录页面包含一个表单,您可以在该表单中输入一个电子邮件地址。不管您输入了什么电子邮件地址,您的会话都会将其作为有效用户使用。
要使应用程序认定登录的用户为管理员,请选中表单上的“以管理员身份登录”复选框。
当您的应用程序使用网址抓取 API 创建 HTTP 请求时,开发网络服务器将直接从您的计算机创建该请求。如果您使用代理服务器访问网站,那么,这种行为可能与在 App Engine 上运行应用程序时不同。
开发服务器命令支持以下命令行参数:
--port=...用于该服务器的端口号。默认为 8080。
--address=...用于该服务器的主机地址。您可能需要设置该地址,以便能够从网络上的其他计算机访问该开发服务器。地址 0.0.0.0 允许进行本地主机访问和主机名访问。默认为 localhost。
--sdk_root=...指向 App Engine Java SDK 的路径(如果其位置不同于工具的位置)。
--disable_update_check如果指定了此参数,则开发服务器不会联系 App Engine 以检查是否存在新版本的 SDK。默认情况下,服务器在启动时检查是否有新版本,如果有新版本可用,则打印消息。
--help打印非常有帮助的消息,然后退出。