2017-07-31 36 views
-1

這是一個spring boot-project。在這個項目中,我無處使用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進程。這裏給出一個從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

其中一個類路徑條目的應GWT-user.jar或GWT-的servlet.jar。

相關問題