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 集成),应该没问题。