2016-04-27 8 views
0

Ich bekomme Fehler. Ich bin nicht in der Lage, dieses Problem zu lösen, auch nachdem die Guava-Versionen geändert wurden. Ich verwende gcloud java, um mich von der lokalen Java-App mit dem Cloud-Datenspeicher zu verbinden, und ich bekomme diesen Abhängigkeitsfehler.Pom.xml geben abhängige Fehler beim Zugriff auf Datenspeicher von Standalone-Java-Anwendung

java.lang.NoSuchMethodError: com.google.common.collect.Iterables.getFirst(Ljava/lang/Iterable;Ljava/lang/Object;)Ljava/lang/Object; 

<dependencies> 
    <dependency>      <!-- REQUIRED --> 
     <groupId>javax.servlet</groupId> <!-- Java Servlet API --> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.1.0</version> 
     <scope>provided</scope>   <!-- Provided by the Jetty Servlet engine --> 
    </dependency> 

    <dependency>      <!-- Java Server Pages --> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jsp-api</artifactId> 
     <version>2.0</version> 
    </dependency> 

    <dependency>      <!-- JSP standard tag library --> 
     <groupId>jstl</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 

    <dependency>      <!-- Apache Taglibs --> 
     <groupId>taglibs</groupId> 
     <artifactId>standard</artifactId> 
     <version>1.1.2</version> 
    </dependency> 

    <dependency>      <!-- Google Cloud Client Library for Java --> 
     <groupId>com.google.cloud</groupId> 
     <artifactId>gcloud-java</artifactId> 
     <version>0.2.0</version> 
    </dependency> 

    <dependency>      <!-- Google API client - for stuff that's not in gcloud--> 
     <groupId>com.google.api-client</groupId> 
     <artifactId>google-api-client</artifactId> 
     <version>1.21.0</version> 
    </dependency> 

    <dependency>      <!-- Google+ API Client Library for Java --> 
     <groupId>com.google.apis</groupId> 
     <artifactId>google-api-services-plus</artifactId> 
     <version>v1-rev339-1.21.0</version> 
    </dependency> 

    <dependency>      <!-- https://github.com/FasterXML/jackson-databind --> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>2.7.0</version> 
    </dependency> 

    <dependency>      <!-- Google Core Libraries for Java --> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> <!-- https://github.com/google/guava/wiki --> 
     <version>10.0.1</version> 
    </dependency> 

    <dependency>      <!-- http://www.joda.org/joda-time/ --> 
     <groupId>joda-time</groupId> 
     <artifactId>joda-time</artifactId> 
     <version>2.9.2</version> 
    </dependency> 

    <dependency>      <!-- http://dev.mysql.com/doc/connector-j/en/ --> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.38</version> 
    </dependency> 

    <dependency>      <!-- Apache Database Connection Pool API --> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-dbcp2</artifactId> 
     <version>2.1.1</version> 
    </dependency> 

    </dependencies>My pom.xml has the following dependencies: 

Antwort

0

Bitte überprüfen Sie Ihre Containermodule Version.

Zum Beispiel haben GlassFish Server alte Version von Guava lib. Wenn möglich (und tatsächlich), überprüfen Sie Ihr "GlassFish_Server/glassfish/modules /" Verzeichnis.

+0

Ich bin nicht GlassFishServer mit, ich bin mit einer eigenständigen appengine Java-Anwendung, die lokal auf meinem System läuft. – bigdata

-1

Wahrscheinlich zu spät, aber hier ist meine Antwort: Die Ursache für NoSuchMethodError ist, dass Sie Ihre Klasse mit einer anderen Version als die Ausführungsklasse kompiliert haben. Bitte überprüfen Sie den Abhängigkeitsbaum Ihrer Hauptabhängigkeiten. Mein Punkt ist für com.google.api-Client, aber ich kann nicht versichern, dass ...

Bonus: Differenz zwischen NoSuchMethodError und NoSuchMethodException in diesen article