当我使用
gradle appengineDeploy
我的网络连接中断了。
我重新部署了这个项目。虽然控制台说
BUILD SUCCESSFUL
,应用引擎实例不再工作。无论我重新部署或更新应用程序多少次,日志只显示错误:
java.lang.NoClassDefFoundError:com/google/appengine/api/ThreadManager
在
com.google.api网站.control.extensions.appengine.古格利普pEngineControlFilter.createClient
com.google.api网站.control.ControlFilter.init(ControlFilter.java:141)在
org.eclipse.jetty.servlet.FilterHolder.initialize
(过滤器文件夹.java:139)在
org.eclipse.jetty.servlet.ServletHandler.initialize
(ServletHandler.java:873)在
org.eclipse.jetty.servlet.ServletContextHandler.startContext
(第ServletContextHandler.java:349)在
org.eclipse.jetty.webapp.WebAppContext.startWebapp
(WebAppContext.java:1406)在
com.google.apphosting网站.运行时.jetty9.Ap公司pEngineWebAppContext.startWebapp
(美联社)pEngineWebAppContext.java:175)在
org.eclipse.jetty.webapp.WebAppContext.startContext
(WebAppContext.java:1368)在
org.eclipse.jetty.server.handler.ContextHandler.doStart公司
(ContextHandler.java:778)在
org.eclipse.jetty.servlet.ServletContextHandler.doStart公司
(第ServletContextHandler.java:262)在
org.eclipse.jetty.webapp.WebAppContext.doStart
com.google.apphosting网站.运行时.jetty9.Ap公司pEngineWebAppContext.doStart
(美联社)pEngineWebAppContext.java:120)在
org.eclipse.jetty.util.component.AbstractLifeCycle.启动
(抽象生命周期.java:68)在
(AppVersionHandlerMap.java:240)在
com.google.apphosting网站.运行时.jetty9.AppVersionHandlerMap.getHandler
(AppVersionHandlerMap.java:178)在
com.google.apphosting网站.运行时.jetty9.码头ServletEngineAdapter.serviceRequest
(码头ServletEngineAdapter.java:120)在
com.google.apphosting网站.运行时.JavaRuntime$RequestRunnable.dispatchServletRequest
(java运行时.java:747)在
(java运行时.java:710)在
com.google.apphosting网站.运行时.JavaRuntime$请求运行。运行
(java运行时.java:680)在
com.google.apphosting网站.运行时.JavaRuntime$NullSa美元ndboxRequestRunnable.run
com.google.apphosting网站.runtime.ThreadGroupPool$池入口.run
(ThreadGroupPool.java:270)在java.lang.Thread.运行(线程.java:748)
原因:java.lang.ClassNotFoundException:
com.google.appengine网站.api.ThreadManager接口在
java.net.URLClassLoader.find类(URLClassLoader.java:381)在
com.google.apphosting网站.runtime.ApplicationClassLoader.find类
(美联社)applicationClassLoader.java:135)在java.lang.ClassLoader.负荷等级
(类加载器.java:357)
有没有什么方法可以让我清除googleappengine中的部分构建(或其他可能的构建)?
我尝试删除所有版本和实例(你不能全部删除它们,它不会让你删除服务的版本和实例)。
我试着增加appengine的版本号-web.xml文件.
我试着把格拉德尔干掉。
我尝试在google云控制台中禁用和启用应用程序。
运气不好。
我的一个想法是,如果我能以某种方式强制将应用程序的所有文件重新上传?因为
gradle appengineDeploy公司
只上传文件。
编辑:
我设法通过升级来修复其中的一部分
classpath 'com.google.cloud.tools:appengine-gradle-plugin:2.2.0'
在我的最新版本。(觉得这样做有点老土,如果再发生这种情况,将来就不可靠了)也许这样做会冲走应用程序引擎或其他东西。我还有一个问题:
我正在使用firebase admin SDK发送firebase云消息(通过.json凭据文件进行身份验证),如下所示:
FirebaseMessaging.getInstance().send(msg);
当我这样做时,我会得到这个错误:
com.google.firebase网站.messaging.FirebaseMessagingException:意外
HTTP响应,状态为:401;正文:null
这很奇怪,因为firebase管理SDK的其他部分正在工作(比如从firestore写入/读取)。
所以还是有一些奇怪的事情发生了,我想这和我上传我的googleappengine项目时连接被中断的事实有关。
编辑2:
这里有一些有趣的事情:当我使用
gcloud app deploy appengine-web.xml
应用程序再次无法工作。使用部署
gradle appengineDeploy公司
尽管如此。我还注意到,当使用
gcloud应用部署appengine-web.xml文件
gcloud
清除缓存的命令?或者类似的事情,但没有运气。
编辑3:
附加信息:
在尝试失败之前,我的应用程序已部署并正常工作。我更改了一个函数中的一小段代码,上传应用程序后,连接因互联网中断而中断。
我是应用引擎标准环境。
我正在从macOS终端部署我的应用程序,并使用androidstudio进行开发。
stopPreviousVersion
promote
和
version
在gradle中配置(实际上前两个默认为true,并且
版本
获取自动生成(如果未设置)。
跑步
gcloud app deploy appengine-web.xml --verbosity=debug
显示了很多敏感信息,但我看到的是
WEB-INF
正在跳过:
DEBUG: Skipping upload of [WEB-INF/....
INFO: Incremental upload skipped 100.0% of data
DEBUG: Uploading 0 files to Google Cloud Storage
DEBUG: Using [16] threads
所以也许文件并没有全部上传?这篇文章提出了一个类似的问题,但没有解决办法:
stackoverflow.com/q/42137452/3075340
gcloud app deploy
,应用程序根本无法工作。到处都有运行时错误。做
gradle appengineDeploy公司
解决了,但我仍然有
firebase-admin
问题。