gpt4 book ai didi

java - 使用 Eclipse 的 GAE 中的 NoClassDefFoundError

转载 作者:行者123 更新时间:2023-12-02 02:55:09 25 4
gpt4 key购买 nike

我尝试将在 Google 应用引擎中运行的应用从使用 BlobstoreService 接口(interface)迁移到较新的云存储,但没有成功。

为了让事情变得更简单,我从头开始尝试运行 Google 提供的示例之一 ( GitHub )。我使用的是 Eclipse 4.6、Google Cloud SDK149.0.0,应用程序引擎 java 版本为 1.9.50。该代码编译完美,尽管在本地环境中不起作用(我期望如此)。然而,当部署在 GAE 中时,它会在运行时失败并出现 NoClassDefFoundError:

Uncaught exception from servlet java.lang.NoClassDefFoundError: com/google/api/services/storage/Storage$Builder at com.google.appengine.tools.cloudstorage.oauth.OauthRawGcsService.(OauthRawGcsService.java:175) at com.google.appengine.tools.cloudstorage.oauth.OauthRawGcsServiceFactory.createOauthRawGcsService(OauthRawGcsServiceFactory.java:41) at com.google.appengine.tools.cloudstorage.GcsServiceFactory.createRawGcsService(GcsServiceFactory.java:59) at com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:44) at com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:40) at com.clopez.storage.NewUpload.doPost(NewUpload.java:53)

我的代码(实际上是 Google 自己的代码)失败于:

GcsService gcsService = GcsServiceFactory.createGcsService(RetryParams.getDefaultInstance());

正如我在其他几个 Stackoverflow 帖子中读到的那样,这通常是由于我的 WEB-INF/lib 目录中不存在 jar,因此我将 appengine-api-1.0-sdk-1.9.50.jar 包含在其中, appengine-gcs-client-0.6、com.google.guava_20.0.0、joda-time-2.9.9 以及最新 Google Java 客户端 API 中的所有 jar。部署后我的 WEB-INF 目录如下:

Stackoverflow doesn't allow me to show pictures here, so here's the link

然而,这一直失败,我很惊讶。我不知道如何继续前进。

最佳答案

我没有使用 Maven,所以我需要手动将所有需要的 jar 包含到 WEB-INF/lib 中。即使我复制了 google-api-services-storage-v1-rev104-java-1.22.0.zip 包中的所有库,我也忘记包含主库(不在该包的 libs 目录下)。简而言之,将 google-api-services-storage-v1-rev104-1.22.0.jar 放入 Eclipse 中的 WEB-INF/lib 目录即可完成工作。多谢。

关于java - 使用 Eclipse 的 GAE 中的 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43214242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com