这是一个春季启动项目。在项目中,我无处使用GWT。但是在运行spring-boot项目时我仍然遇到此错误。
Could not autowire field: some.package.SomeClass.field
nested exception is java.lang.NoClassDefFoundError:
com/google/gwt/user/client/rpc/IsSerializable
知道我为什么会这样做吗?
答案 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。