2017-04-04 5 views
0

Ich versuche, eine App in Google App-Engine von der Verwendung der BlobstoreService-Schnittstelle auf den neueren Cloud Storage ohne Erfolg zu bewegen.NoClassDefFoundError in GAE mit Eclipse

Um die Dinge einfacher zu machen, habe ich von vorne angefangen, eines der von Google bereitgestellten Beispiele (GitHub) auszuführen. Ich benutze Eclipse 4.6, Google Cloud SDK149.0.0 mit der Java-Version der App-Engine bei 1.9.50. Der Code kompiliert fehlerfrei, funktioniert aber nicht in der lokalen Umgebung (das habe ich erwartet). Allerdings entfaltet, wenn sie in GAE scheitert es an der Laufzeit mit einem 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)

Mein Code (in der Tat Google-eigenen Code) nicht an:

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

Wie ich bereits in mehreren anderen Stackoverflow Beiträge gelesen habe Dies liegt normalerweise daran, dass die Dateien nicht in meinem Verzeichnis WEB-INF/lib enthalten sind, daher habe ich sie dort aufgenommen: 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 und alle Jars in der neuesten Google Java Client API. My WEB-INF-Verzeichnis einmal eingesetzt ist, wie:

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

Doch dies hält versagt und ich bin erstaunt. Ich weiß nicht, wie ich weitermachen soll.

+0

Können Sie versuchen, dies: http://stackoverflow.com/questions/38959617/the-import-com-google-api-services-storage-cannot-be- gelöst –

+0

Erledigt mit dem gleichen fehlerhaften Ergebnis. Die in diesem Beitrag vorgeschlagene JAR-Sammlung [die JSON-API-Clientbibliothek für Cloud Storage für Java] (https://developers.google.com/api-client-library/java/apis/storage/v1) ist eine Untergruppe von [Google Java Client API] (https://developers.google.com/api-client-library/java/google-api-java-client/download) Ich verwende –

+0

Wie wäre es mit diesem: http://stackoverflow.com/questions/36231634/noclassdeffounderror-com-google-api-services-speicher-speicherbuilder? –

Antwort

1

Ich verwende nicht Maven, also muss ich manuell alle benötigten Gläser in WEB-INF/lib einschließen. Selbst wenn ich alle Bibliotheken im google-api-services-storage-v1-rev104-java-1.22.0.zip-Paket kopiert habe, habe ich vergessen, die Hauptbibliothek einzuschließen (nicht unter dem libs-Verzeichnis in diesem Paket). Kurz gesagt löste google-api-services-storage-v1-rev104-1.22.0.jar das Verzeichnis WEB-INF/lib in Eclipse. Danke vielmals.

Verwandte Themen