2017-07-31 4 views
-1

Il s'agit d'un projet de démarrage au printemps. Dans le projet, je n'utilise nulle part GWT. Mais je reçois toujours cette erreur lors de l'exécution du projet spring-boot.Impossible d'autofaire le champ: l'exception imbriquée est java.lang.NoClassDefFoundError: com/google/gwt/utilisateur/client/rpc/IsSerializable

Could not autowire field: some.package.SomeClass.field 
nested exception is java.lang.NoClassDefFoundError: 
com/google/gwt/user/client/rpc/IsSerializable 

Une idée de pourquoi je reçois ceci?

+1

Quelque chose sur votre chemin de classe fait référence à IsSerializable à partir de GWT, je vérifie le type de 'some.package.SomeClass.field' et vois de quoi il dépend. – Raniz

Répondre

1

Vous placez GWT quelque part. Pour suivre cela, vous devez regarder le chemin de classe que votre application utilise.

import java.net.URL; 
import java.net.URLClassLoader; 
import java.util.Arrays; 

public class ClassPathPrinter 
{ 
    public static void main(String args[]) 
    { 
     ClassLoader cl = ClassLoader.getSystemClassLoader(); 
     URL[] urls = ((URLClassLoader) cl).getURLs(); 
     Arrays.stream(urls).forEach(System.out::println); 
    } 
} 

Si vous utilisez une saveur de unix (ou Cygwin), vous pouvez aussi voir le chemin de classe comme arguments au processus de Java en utilisant ps. Voici un exemple d'une machine OSX:

ps -ef | grep java

284: 501 45687 38343 0 6:54PM ?? 4:04.20 /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:60768,suspend=y,server=n -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=127.0.0.1 -Xms2048m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=512m -Xms256m -Xmx512m -XX:MaxPermSize=128m -Djava.endorsed.dirs=/opt/tomcat/endorsed -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/opt/tomcat/temp org.apache.catalina.startup.Bootstrap start

L'une des entrées classpath doit être GWT-user.jar ou GWT-servlet.jar.