【问题标题】:MemcacheServiceFactory class not found error after deploying to Google app engine (Java)部署到 Google 应用引擎 (Java) 后,找不到 MemcacheServiceFactory 类错误
【发布时间】:2019-11-14 12:46:01
【问题描述】:

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

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)

【问题讨论】:

  • 从 1.9.76 升级到 1.9.77 后,我看到了这个一般性问题。 SDK jar没有设置为“提供”,它确实出现在 WEB-INF/lib 中。我还没能修复它。
  • 我遇到了同样的问题...问题是 gcloud 与普通 GAE SDK 工具不匹配——gcloud 有一些旧组件(版本)。当我使用老式的“mvn appengine:update”时它起作用了。

标签: google-app-engine google-cloud-datastore memcached


【解决方案1】:

我找到了一个相关的帖子Adam response

这可能会对您有所帮助:

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

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

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

【讨论】:

  • 谢谢玛丽安。唯一对我有用的是将 appengine-api-1.0-sdk 从 1.9.77 降级到 1.9.34。可能在最新版本中有所改变。感谢您的宝贵时间。
  • 尝试从 1.9.76 升级到 1.9.77 然后我开始看到这个错误
【解决方案2】:

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

gcloud 组件更新

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

【讨论】:

    猜你喜欢
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 2012-08-23
    • 1970-01-01
    • 2021-07-06
    • 2022-07-05
    相关资源
    最近更新 更多