【发布时间】:2020-07-10 05:43:43
【问题描述】:
我刚刚推送了我的 App Engine 应用(没有更改代码),它开始抛出:
java.lang.NoSuchFieldError: usingExperimentalRuntime
at
com.google.appengine.api.memcache.MemcacheServicePb$MemcacheGetRequest.getSerializedSize (MemcacheServicePb.java:1597)
at
com.google.appengine.repackaged.com.google.protobuf.AbstractMessageLite.toByteArray (AbstractMessageLite.java:44)
at
com.google.appengine.api.memcache.MemcacheServiceApiHelper.makeAsyncCall (MemcacheServiceApiHelper.java:97)
at
com.google.appengine.api.memcache.AsyncMemcacheServiceImpl.doGet (AsyncMemcacheServiceImpl.java:405)
at
com.google.appengine.api.memcache.AsyncMemcacheServiceImpl.get (AsyncMemcacheServiceImpl.java:412)
at
com.google.appengine.api.memcache.MemcacheServiceImpl.get (MemcacheServiceImpl.java:49)
at
com.google.appengine.api.appidentity.AppIdentityServiceImpl.getAccessToken (AppIdentityServiceImpl.java:288)
at
com.google.api.client.googleapis.extensions.appengine.auth.oauth2.AppIdentityCredential.intercept (AppIdentityCredential.java:98)
at
com.google.api.client.googleapis.extensions.appengine.auth.oauth2.AppIdentityCredential$AppEngineCredentialWrapper.intercept (AppIdentityCredential.java:243)
at
com.google.api.client.http.HttpRequest.execute (HttpRequest.java:868)
at
com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed (AbstractGoogleClientRequest.java:419)
at
com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed (AbstractGoogleClientRequest.java:352)
at
com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute (AbstractGoogleClientRequest.java:469)
at
我正在使用以下依赖项的 1.9.80 版本:
appengine-api-1.0-sdk 应用引擎工具 SDK appengine-maven-plugin
自几周前上次成功推送以来,我没有以任何方式更改依赖项或代码。我只是做了一个:
mvn clean install
mvn appengine:update
并成功部署。
我的服务已经死了,因为我似乎无法回滚。
我在这个主题上看到的所有问题都是几年前的问题,他们建议转到 1.9.49 版本。我们现在已经过去了。我需要什么魔法才能让我的所有依赖项停止在其他依赖项中查找不存在的字段?
【问题讨论】:
-
几周前最后一次推送成功时,您使用的是什么版本?确保您没有任何与以前版本 (1.9.80) 冲突的 JAR,然后重试。请务必查看documentation。告诉我进展如何。
-
感谢您的提示。我深入研究了一下,发现当我从另一台机器推送时错误停止了。我必须在某个地方有一个糟糕的本地构建缓存。您会认为 mvn clean 会删除所有内容。仍在调查中。
-
很高兴听到!我以为我以前见过 java.lang.NoSuchFieldError: usingExperimentalRuntime ,如果我没记错的话,我认为这是与以前版本中的一些冲突 JAR 有关的问题。让我发布一个答案,以防其他人正在阅读本文,您可以判断我的答案是否有帮助。
标签: java maven google-app-engine google-compute-engine