从方法引用的java.lang.IllegalArgumentException在类装入器中不可见
在/target/class/…中通过wsimport为WS-service生成存根时,我获得了一个异常。。。。。并使用devtools运行spring引导应用程序 原因:java.lang.IllegalArgumentException:com…从方法引用的服务在类加载器中不可见 我发现SpringDevTools类加载器有一个问题,RestartClassLoader,因为对一个类有两个不同的引用(RestartClassLoader和AppClassLoader)从方法引用的java.lang.IllegalArgumentException在类装入器中不可见,java,spring-boot,spring-boot-devtools,Java,Spring Boot,Spring Boot Devtools,在/target/class/…中通过wsimport为WS-service生成存根时,我获得了一个异常。。。。。并使用devtools运行spring引导应用程序 原因:java.lang.IllegalArgumentException:com…从方法引用的服务在类加载器中不可见 我发现SpringDevTools类加载器有一个问题,RestartClassLoader,因为对一个类有两个不同的引用(RestartClassLoader和AppClassLoader) private sta
private static void可修改(类装入器ld,c类){
类类型=null;
试一试{
type=Class.forName(c.getName(),false,ld);
}catch(classnotfounde异常){
如果(类型!=c){
抛出新的IllegalArgumentException(c.getName()+
“从方法引用的内容在类加载器中不可见”);
}
}
}
我试图在spring-devtools.properties中添加对jar文件的引用以重新启动
Spring Boot 2.0.0.0版本Java 9
因为它们是生成的类,所以您必须将它们从SpringDevTools“重新启动”类加载器中排除
/src/main/resources/META-INF/spring devtools.properties
文件restart.exclude.*
以从restart classloader中排除类(例如,您可以使用restart.exclude.mygeneratedclasses=/*[generated]*.class
以排除包或类名中包含generated
word的所有类)[2] 或者,您可以尝试将JAR(使用spring开发工具中的classloader)包含到spring开发工具中。见:
private static void ensureVisible(ClassLoader ld, Class<?> c) {
Class<?> type = null;
try {
type = Class.forName(c.getName(), false, ld);
} catch (ClassNotFoundException e) {
if (type != c) {
throw new IllegalArgumentException(c.getName() +
" referenced from a method is not visible from class loader");
}
}
}