在 App Engine Standard 上部署时无法生成 quickstart.xml
Posted
技术标签:
【中文标题】在 App Engine Standard 上部署时无法生成 quickstart.xml【英文标题】:Failed to generate quickstart.xml while deploying on App Engine Standard 【发布时间】:2018-07-11 22:37:11 【问题描述】:自过去 3 天以来,我一直在努力解决这个问题,并且可能在 SO 和 Git 论坛上尝试了所有解决方案。
在谷歌应用引擎中, 该应用程序在本地服务器上完美运行,但在部署时, 显示以下错误。
正在读取应用程序配置数据... ************************************ 配置警告:/XML 元素和--application/--version 暂存时不应指定
以下参数将从 app.yaml 应用程序中清除: shsDemo 版本:1.1
如果应用程序或版本是 指定。
开始与模块默认交互... 0% 正在扫描 jsp 文件。 0% 编译 jsp 文件。 2018 年 2 月 1 日晚上 8:10:47 org.apache.jasper.servlet.TldScanner scanJars INFO: 至少一个 JAR 已扫描 TLD,但未包含 TLD。启用调试日志记录 此记录器获取已扫描但没有 TLD 的 JAR 的完整列表 在他们身上被发现。在扫描期间跳过不需要的 JAR 可以改善 启动时间和 JSP 编译时间。 2018 年 2 月 1 日晚上 8:10:48 org.apache.jasper.JspC processFile INFO:构建文件:/feedback.jsp
错误:无法找到或加载主类 com.google.appengine.tools.development.jetty9.QuickStartGenerator 执行时出错:/usr/lib/jvm/java-8-oracle/jre/bin/java -cp /usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/java/jetty93/jetty-distribution/lib/jetty-schemas-3.1.jar:/usr/lib/google-cloud-sdk/平台/google_appengine/google/appengine/tools/java/jetty93/jetty-distribution/lib/jetty-util-9.3.18.v20170406.jar:/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine /tools/java/jetty93/jetty-distribution/lib/jetty-deploy-9.3.18.v20170406.jar:/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/java/jetty93/ jetty-distribution/lib/jetty-http-9.3.18.v20170406.jar:/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/java/jetty93/jetty-distribution/lib/jetty -proxy-9.3.18.v20170406.jar:/usr/lib/google-cloud- . . .类似这样的日志。 . . .无法暂存应用程序:未能 生成 quickstart-web.xml。请查看日志 [/tmp/appcfg5433316199131614644.log] 了解更多信息。
在日志中,
无法暂存: java.lang.RuntimeException:无法生成 quickstart-web.xml。 在 com.google.appengine.tools.admin.Application.createQuickstartWebXml(Application.java:1806) 在 com.google.appengine.tools.admin.Application.populateStagingDirectory(Application.java:999) 在 com.google.appengine.tools.admin.Application.createStagingDirectory(Application.java:872) 在 com.google.appengine.tools.admin.AppAdminImpl.stageApplication(AppAdminImpl.java:539) 在 com.google.appengine.tools.admin.AppAdminImpl.stageApplicationWithDefaultResourceLimits(AppAdminImpl.java:492) 在 com.google.appengine.tools.admin.AppCfg$StagingAction.execute(AppCfg.java:2529) 在 com.google.appengine.tools.admin.AppCfg.executeAction(AppCfg.java:390) 在 com.google.appengine.tools.admin.AppCfg.(AppCfg.java:213) 在 com.google.appengine.tools.admin.AppCfg.(AppCfg.java:119) 在 com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:115) com.google.appengine.tools.admin.AdminException:无法暂存应用程序:无法生成 quickstart-web.xml。 在 com.google.appengine.tools.admin.AppAdminImpl.stageApplication(AppAdminImpl.java:543) 在 com.google.appengine.tools.admin.AppAdminImpl.stageApplicationWithDefaultResourceLimits(AppAdminImpl.java:492) 在 com.google.appengine.tools.admin.AppCfg$StagingAction.execute(AppCfg.java:2529) 在 com.google.appengine.tools.admin.AppCfg.executeAction(AppCfg.java:390) 在 com.google.appengine.tools.admin.AppCfg.(AppCfg.java:213) 在 com.google.appengine.tools.admin.AppCfg.(AppCfg.java:119) 在 com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:115) 原因:java.lang.RuntimeException:无法生成 quickstart-web.xml。 在 com.google.appengine.tools.admin.Application.createQuickstartWebXml(Application.java:1806) 在 com.google.appengine.tools.admin.Application.populateStagingDirectory(Application.java:999) 在 com.google.appengine.tools.admin.Application.createStagingDirectory(Application.java:872) 在 com.google.appengine.tools.admin.AppAdminImpl.stageApplication(AppAdminImpl.java:539) ... 6 更多
JDK:oracle 8。 请帮我找出问题并在 App Engine 上部署项目。 我之前部署过同样的项目。
【问题讨论】:
您的具体部署命令是什么? 【参考方案1】:您使用的是 GCloud SDK 版本 187.0.0 吗?
我在使用这个版本的 SDK 时遇到了同样的问题,甚至在从 https://cloud.google.com/appengine/docs/standard/java/quickstart 运行教程项目时也遇到了同样的错误
我卸载了 SDK 并安装了之前的版本 (186.0.0),现在一切正常。也许它也可以为您解决问题。
旧版本可在此处下载:
https://console.cloud.google.com/storage/browser/cloud-sdk-release?authuser=0&prefix=google-cloud-sdk-186
【讨论】:
感谢您的洞察力。但是我无法更新或安装 v 186.0.0。我得到的只是支持的模块列表。 值 '186.0.0' 对于 APT::Default-Release 无效,因为源中没有这样的版本 我在一月份找到了相同的解决方案。目前,gcloud 组件版本 188.0.1 也不起作用【参考方案2】:我有同样的问题。对于使用 Google Cloud Shell 在 App Engine 上构建和部署的开发者,您可以通过以下方式更改 gcloud sdk 版本:
sudo gcloud components update --version 186.0.0
【讨论】:
【参考方案3】:我能够通过删除旧版本恢复到版本 186.0.0-0。尝试使用 apt 安装旧版本。只有在 debian/ubuntu 上将 google cloud sdk 安装为 .deb 包时,它才会起作用。
apt-get install google-cloud-sdk=186.0.0-0 google-cloud-sdk-app-engine-java=186.0.0-0
恢复到旧版本后也可以进行部署。
我还在谷歌的云 sdk 问题跟踪器上打开了一个问题 https://issuetracker.google.com/issues/72808542
【讨论】:
是的,主要区别在于,写的是 186.0.0-0 而不是 186.0.0【参考方案4】:临时解决办法。
今天,gcloud 工具的版本为 188.0.1,mvn 部署仍然无法正常工作。不过,我找到了解决方法。
下载 GAE sdk 后: https://cloud.google.com/appengine/docs/standard/java/download
我将丢失的 jar 复制到提到的位置:
cp -r appengine-java-sdk-1.9.62/lib/tools/quickstart [TO YOUR SDK PATH]google-cloud-sdk/platform/google_appengine/google/appengine/tools/java/lib/tools/
随后,mvn appengine:stage 和 mvn appengine:deploy 按预期工作。
参考:basis for work around
【讨论】:
【参考方案5】:我在 187 版遇到了同样的问题,我通过降级到 186 版解决了这个问题。
我运行了这 2 个命令:
apt-get install google-cloud-sdk=186.0.0-0 google-cloud-sdk-app-engine-java=186.0.0-0
gcloud components update --version 186.0.0
【讨论】:
以上是关于在 App Engine Standard 上部署时无法生成 quickstart.xml的主要内容,如果未能解决你的问题,请参考以下文章
在 GCP App Engine 上部署 Django、Django REST Framework 后端和 VueJS + webpack 前端(标准)
在Google App Engine Standard中配置嵌套的静态文件夹 - PHP环境
随机时间段内使用Java Google App Engine Standard的memcache中的服务错误
尝试使用 Ktor/Java8 读取在 App Engine Standard 上运行的数据时,Firestore 客户端挂起
在 App Engine Standard python 中使用 Google Stackdriver Logging 时出错