2017-07-31 21 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。

相关问题