Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带Eclipse的GAE中的NoClassDefFoundError_Java_Eclipse_Google App Engine_Google Cloud Storage - Fatal编程技术网

Java 带Eclipse的GAE中的NoClassDefFoundError

Java 带Eclipse的GAE中的NoClassDefFoundError,java,eclipse,google-app-engine,google-cloud-storage,Java,Eclipse,Google App Engine,Google Cloud Storage,我正在尝试将运行在Google app engine中的应用程序从使用BlobstoreService接口移动到较新的云存储,但没有成功 为了让事情变得更简单,我从零开始尝试运行Google提供的一个示例()。我正在使用Eclipse4.6、GoogleCloudSDK149.0.0和AppEngineJava版本1.9.50。尽管在本地环境中不起作用,但代码的编译还是完美无缺的。但是,在GAE中部署时,它会在运行时失败,并出现NoClassDefFoundError: 来自servlet的未捕

我正在尝试将运行在Google app engine中的应用程序从使用BlobstoreService接口移动到较新的云存储,但没有成功

为了让事情变得更简单,我从零开始尝试运行Google提供的一个示例()。我正在使用Eclipse4.6、GoogleCloudSDK149.0.0和AppEngineJava版本1.9.50。尽管在本地环境中不起作用,但代码的编译还是完美无缺的。但是,在GAE中部署时,它会在运行时失败,并出现NoClassDefFoundError:

来自servlet的未捕获异常 java.lang.NoClassDefFoundError:com/google/api/services/storage/storage$Builder 位于com.google.appengine.tools.cloudstorage.oauth.oautrawgcsservice(OAutrawgcsservice.java:175) 在com.google.appengine.tools.cloudstorage.oauth.OAutrawgcsServiceFactory.CreateOAutrawgcsService(OAutrawgcsServiceFactory.java:41) 位于com.google.appengine.tools.cloudstorage.GcsServiceFactory.createRawGcsService(GcsServiceFactory.java:59) 位于com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:44) 位于com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:40) 位于com.clopez.storage.NewUpload.doPost(NewUpload.java:53)

我的代码(实际上是谷歌自己的代码)在以下方面失败:

GcsService gcsService = GcsServiceFactory.createGcsService(RetryParams.getDefaultInstance());
正如我在其他几篇Stackoverflow文章中所读到的,这通常是由于jar不在我的WEB-INF/lib目录中,所以我在最新的google Java客户端api中包括了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和所有jar。一旦部署,我的WEB-INF目录如下:


然而,这一直在失败,我感到惊讶。我不知道如何前进。

我没有使用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目录中就完成了这项工作。非常感谢

我没有使用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目录中就完成了这项工作。非常感谢

你能试试这个吗:用同样的错误结果做。在那篇文章[Cloud Storage JSON API Client Library for Java]()中建议的jar集合是我正在使用的jar集合的一个子集。这是一个解决方案吗!!!我没有使用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目录中就完成了这项工作。非常感谢。你能试试这个吗:用同样的错误结果完成。在那篇文章[Cloud Storage JSON API Client Library for Java]()中建议的jar集合是我正在使用的jar集合的一个子集。这是一个解决方案吗!!!我没有使用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目录中就完成了这项工作。谢谢。