2017-07-31 9 views
-1

春のブートプロジェクトです。このプロジェクトでは、私はGWTを使用していません。しかし、私はまだspring-bootプロジェクトを実行中にこのエラーが発生しています。フィールドをオートワイヤできませんでした:ネストされた例外はjava.lang.NoClassDefFoundErrorです:com/google/gwt/user/client/rpc/IsSerializable

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

なぜこのようになっているのですか?

+1

あなたのクラスパス上の何かがGWTからIsSerializableを参照しているので、 'some.package.SomeClass.field'の型をチェックし、それが依存するものを見ます。 – Raniz

答えて

1

あなたはどこかでGWTを引っ張っています。これを追跡するには、アプリが使用しているクラスパスを調べる必要があります。

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); 
    } 
} 

は、UNIX(あるいはcygwinの)の風味を実行している場合、あなたはまたPSを使用してJavaプロセスへの引数としてクラスパスを見ることができます。 GWT-user.jarまたはGWT-servlet.jarはなければならないクラスパス・エントリの

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

ワン:ここでOSX機の例です。

関連する問題