部署到 Google 应用引擎 (Java) 后,找不到 MemcacheServiceFactory 类错误

MemcacheServiceFactory class not found error after deploying to Google app engine (Java)

在本地系统上一切正常,但在部署到 Google App Engine 后,它会引发以下有关 Memcache 的错误。这是因为最近对 GAE sdk 的任何更改吗?

1
2
3
com.google.apphosting.runtime.jetty9.JettyLogger warn: Error for /api/utilities (JettyLogger.java:29)
java.lang.NoClassDefFoundError: com/google/appengine/api/memcache/MemcacheServiceFactory
    at DataRetriever.getUtilitiesListJson(DataRetriever.java:29)


我找到了一个相关的帖子 Adam 回复。

这可能对你有帮助:

"听起来您在正在部署的 WAR 包的 WEB-INF/lib 目录中缺少必要的 App Engine JAR。

如果您正在使用 Google Plugin for Eclipse 链接,我建议您创建一个新的 Web 应用程序项目并尝试重新部署,然后确保 WEB-INF/lib 包含 App Engine JAR。

如果您使用的是 Apache Maven 链接,请尝试从 appengine-skeleton-archetype 创建一个新项目,以确保在您的 pom.xml 中指定必要的依赖项。"


问题在于新的 API jar 版本 1.9.77 与旧的工具堆栈之间存在脱节。
要更新您的工具堆栈,请确保您拥有最新的 GAE SDK Maven/Gradle 插件版本或 Cloud SDK 插件版本,以及最新的 Cloud SDK 本身。
例如,您需要运行

gcloud 组件更新

以便 gcloud -version 可以显示 1.9.77 或更高版本的 java GAE 版本。
但是根据您使用的内容更新所有工具(插件、SDK 或 IDE 集成),应该没问题。