上传和管理 Java 应用程序

上传到 Google App Engine

Eclipse Google 插件为 Eclipse 工具栏添加了几个按钮。使用“App Engine 部署”按钮可将应用程序上传到 App Engine:

在第一次上传应用程序之前,必须使用管理控制台注册一个 App Engine 的应用程序 ID。注册应用程序 ID,然后编辑 appengine-web.xml 文件并将 <application>...</application> 元素更改为包含新 ID。

在您点击“App Engine 部署”按钮后,Eclipse 将提示您输入管理员帐户用户名(您的电子邮件地址)和密码。输入您的帐户信息然后点击上传按钮,完成上传。Eclipse 将从 appengine-web.xml 文件获取应用程序 ID 和版本信息,并上传 war/ 目录的内容。

通过访问应用程序的网址,在 App Engine 上测试应用程序:

  • http://<your application ID>.appspot.com/guestbook

App Engine Java SDK 含有用于和 App Engine 交互的命令。可使用该命令将您的应用程序的新版本代码、配置和静态文件上传到 App Engine。还可使用该命令来管理数据存储区索引以及下载日志数据。

  • 上传应用程序
  • 更新索引
  • 管理计划任务
  • 下载日志
  • 命令行参数

上传应用程序

如果您使用的是 Eclipse 和 Google 插件,则可直接从 Eclipse 内上传您的应用程序。要上传应用程序,请点击工具栏上的 App Engine 部署按钮:。有关详细信息,请参阅 Google Eclipse 插件。

还可从命令提示符上传您的应用程序。要使用该命令的其他功能(如下载日志),则必须从命令提示符运行命令。用于运行的命令位于 SDK 的 appengine-java-sdk/bin/ 目录中。

如果您使用的是 Windows 系统,则命令如下:

appengine-java-sdk/bin/appcfg.cmd [options] <action> <war-location>

如果您使用的是 Mac OS X 或 Linux 系统,则命令如下:

./appengine-java-sdk/bin/appcfg.sh [options] <action> <war-location>

该命令采用要执行的操作的名称和您的应用程序的 WAR 目录位置作为参数。

要上传应用程序,请使用 update 操作,如下所示:

./appengine-java-sdk/bin/appcfg.sh update myapp/war

这些命令是操作系统特定的包装脚本,可运行 appengine-java-sdk/lib/appengine-tools-api.jar 中的 Java 类 com.google.appengine.tools.admin.AppCfg

更新索引

当使用 update 操作上传应用程序时,更新将包括应用程序索引配置(datastore-indexes.xml 文件和 generated/datastore-indexes-auto.xml 文件)。如果索引配置定义了 App Engine 上还不存在的索引,则 App Engine 将创建此新索引。创建索引可能需要一些时间,时间长短取决于数据存储区中已存在的需要编入新索引的数据量。如果应用程序执行需要索引的查询但该索引还未构建完成,则该查询将引发异常。

要防止出现该问题,您必须确保在索引构建完成之前,要求新索引的应用程序的新版本不是应用程序的活动版本。其中一种做法是,每当您在配置中添加或更改索引时,即在 appengine-web.xml 中为应用程序指定一个新版本号。应用程序将以新版本上传,不会自动变成默认的版本。当您的索引已完成构建时,可使用管理控制台的“版本”部分将默认版本更改为新版本。

确保新索引在新的应用程序启用之前已构建的另一种方法是,在上传应用程序之前单独上传索引配置。要仅上传应用程序的索引配置,请使用 update_indexes 操作:

./appengine-java-sdk/bin/appcfg.sh update_indexes myapp/war

可从管理控制台的“索引”部分检查应用程序索引的状态。

管理计划任务

App Engine 支持计划任务(又称 cron job)。可在名为 cron.xml 的文件中指定这些任务,然后使用 update_cron 命令将其上传:

./appengine-java-sdk/bin/appcfg.sh update_cron myapp/war

在文件存在的情况下,appcfg update 也将上传 cron job 说明。有关 cron job 的详细信息,请参阅 Cron Job 文档。

下载日志

App Engine 将维护您的应用程序发出的消息的日志。App Engine 还将在日志中记录每个请求。您可从管理控制台的“日志”部分浏览应用程序的日志。

如果您希望对应用程序的日志执行详细分析,可将日志数据下载到您的计算机上的文件中。要将日志下载到名为 mylogs.txt 的文件中,请使用 request_logs 操作,如下所示:

./appengine-java-sdk/bin/appcfg.sh request_logs myapp/war mylogs.txt

默认情况下,该命令将下载从当前日历日(自太平洋时间午夜零点起)开始的 INFO 或更高日志级别(省略 DEBUG 级别的消息)的日志消息。该命令还将覆盖本地的日志文件。可使用命令行选项调整天数、最小日志级别以及是覆盖本地日志文件还是附加到本地日志文件。有关这些选项的详细信息,请参见下文。

命令行参数

AppCfg 命令采用一组选项、一个操作以及操作参数。

有以下操作可选:

appcfg.sh [options] update <war-location>

为指定了应用程序根目录的应用程序上传文件。应用程序 ID 和版本是从 appengine-web.xml 文件获取的。

appcfg.sh [options] rollback <war-location>

撤消指定应用程序完成的部分更新。如果更新中断并且命令报告由于锁定而无法更新应用程序,则可以使用此操作。

appcfg.sh [options] update_indexes <war-location>

更新 App Engine 中的数据存储区索引以包括新添加的索引。如果新版本的应用程序需要添加到索引配置的额外索引定义,您可在上传新版本的应用程序之前在 App Engine 中更新索引配置。在上传新版本的应用程序之前几个小时运行该操作,可给予索引进行构建的时间并在部署应用程序时提供服务。

appcfg.sh [options] request_logs <war-location> <output-file>

检索 App Engine 上运行的应用程序的日志数据。output-file 是要创建或替换的文件的名称。如果 output-file 为连字符 (-),则日志数据将打印到控制台。以下选项适用于 request_logs

--num_days=...

要检索的日志数据的天数(结束时间为国际协调时间当前日期的午夜)。0 值会检索所有可用日志。如果 --append 已指定,则默认为 0,否则默认为 1。

--severity=...

要检索的日志消息的最低日志级别。该值是一个与日志级别相对应的数字:4 表示“严重”,3 表示“错误”,2 表示“警告”,1 表示“信息”,0 表示“调试”。指定日志级别及更高级别的所有消息都会被检索。默认为 1(信息)。

appcfg.sh [options] help <war-location>

打印有关指定操作的帮助消息,然后退出。

AppCfg 命令对所有操作接受以下选项:

--email=...

应用程序管理员的 Google 帐户的电子邮件地址,适用于需要登录的操作。如果忽略了该值且以前使用该命令时未存储 cookie,则该命令会提示输入。

--server=...

App Engine 服务器主机名。默认为 appengine.google.com

--host=...

用于与远程过程调用配合使用的本地计算机的主机名。

--sdk_root=...

指向 App Engine Java SDK 的路径(如果其位置不同于工具的位置)。

--passin

请勿将管理员登录凭证存储为 cookie;每次登录时都提示输入密码。

google app engine上传程序相关推荐

  1. Google App Engine上的Spring MVC和REST

    前段时间,我写了一篇关于如何使用Spring MVC实现Restful Web API的文章 . 阅读我以前的文章以了解它. 在那篇文章中,开发了一个简单的Rest示例. 为了测试该应用程序,将文件复 ...

  2. vaadin_5分钟内Google App Engine上的Vaadin App

    vaadin 在本教程中,您将学习如何创建第一个Vaadin Web应用程序,如何在本地AppEngine开发服务器上运行它以及如何将其部署到Google App Engine基础结构. 所有这些大约 ...

  3. 5分钟内Google App Engine上的Vaadin App

    在本教程中,您将学习如何创建第一个Vaadin Web应用程序,如何在本地AppEngine开发服务器上运行它以及如何将其部署到Google App Engine基础结构. 所有这些大约需要5到10分 ...

  4. python中ht_python – 如何在Google App Engine上正确安装ht...

    我将我的httplib2目录复制到我的GAE项目中,现在我收到以下错误: line 64, in _ssl_wrap_socket = ssl.wrap_socket 这是Google App Eng ...

  5. GEE Google Earth Engine 上传矢量shp数据报错

    在GEE上传以下矢量文件: 但是出错了 : Asset name: projects/earthengine-legacy/assets/users/........../Province_CJLY ...

  6. 谁更胜一筹:技术解析 Google App Engine 和 Amazon EC2

    最近一个潜在客户要求我们比较一下 Amazon EC2 和 Google App Engine,正好我们刚刚在 EC2 和 Google App Engine 上完成了两个相对来说规模较大的项目,因此 ...

  7. Google App Engine对抗Amazon EC2谁更牛?

    导读:笔者根据最近完成的一个项目,并帮助潜在客户比较Amazon EC2和Google App Engine,他将从三个角度来对比这两大云计算平台:技术.业务和未来发展趋势. 关键词:Amazon E ...

  8. 使用 Eclipse + PyDev 开发 Google App Engine 程序

    在Windows上开发应用程序,大多数的开发者会选择合适的IDE来辅助开发,简化一些设定.启动或测试等步骤.而在Windows 上若要开发Google App Engine的应用程式,使用Eclips ...

  9. app mvc框架_Google App Engine上的Spring MVC和REST

    app mvc框架 前段时间,我写了一篇关于如何使用Spring MVC实现Restful Web API的文章 . 阅读我以前的文章以了解它. 在那篇文章中,它开发了一个简单的Rest示例. 为了测 ...

最新文章

  1. 使用Oracle创建图书馆数据库
  2. C++ dll 动态链接库的创建与调用
  3. position 再谈
  4. Errors occurred during the build
  5. 数据库设计笔记——有效设计数据库的目标(二)
  6. Ural 1519. Formula 1 优美的插头DP
  7. 数据科学入门与实战:Seaborn001
  8. 第一次写oracle SQL 两个表链接查询
  9. 阿里云张献涛:公共云不断向外延伸,一云多态是未来趋势
  10. 挑战程序设计竞赛第一章 笔记
  11. 连接器教程---凯利讯半导体
  12. cad文件格式(dwg、dxf、dwf、dws等)转其他格式(svg、,tiff、jpej、png、xml、pdf等)的四种方式(java)
  13. 2022年开始学习Delphi并成为Delphi程序员的5个重要原因
  14. 2009年 上海证券交易所新一代交易系统有多牛逼
  15. linux如何初始化硬盘,Linux硬盘简易初始化(LVM)
  16. 全面云化的变革悄然而至,IPLOOK助力加速云网融合
  17. linux修改用户描述的命令,Linux修改用户信息(usermod)
  18. 云米美国上市雷军系持股40% 陈小平:重新定义家的未来
  19. 什么是百度搜索引擎关键词快速排名上首页?
  20. zookeeper服务注册流程

热门文章

  1. SpaceX完成第三次“拼车发射”任务 送105颗微型卫星入轨
  2. windows10 计算机打不开怎么办,Win10计算器打不开怎么办?如何解决?,爱纯净官网...
  3. 使用STM32CubeMX+freeRtos+MDK开发平衡小车(第一篇)
  4. SUMO应用工具:NETEDIT
  5. 图标修改器html,图标修改器_图标修改工具_图标修改软件【最新】-太平洋电脑网...
  6. React Native项目案例学习
  7. 瓦尔机器人智能行李箱_智能行李箱有多智能_智能行李箱解放你的双手-太平洋IT百科...
  8. Neuroimage | LMDA-Net第一作者亲自讲述其设计思想
  9. [Camera]摄像头镜像
  10. 解惑:如何使得寝室的电脑和实验室的电脑远程相互访问(Linux和Windows)