无法自动装配字段:嵌套异常是java.lang.NoClassDefFoundError:com / google / gwt / user / client / rpc / IsSerializable

时间:2017-07-31 10:57:45

标签: java spring spring-boot gwt

这是一个春季启动项目。在项目中,我无处使用GWT。但是在运行spring-boot项目时我仍然遇到此错误。

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

知道我为什么会这样做吗?

1 个答案:

答案 0 :(得分: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:54 PM ?? 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。