Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从方法引用的java.lang.IllegalArgumentException在类装入器中不可见_Java_Spring Boot_Spring Boot Devtools - Fatal编程技术网

从方法引用的java.lang.IllegalArgumentException在类装入器中不可见

从方法引用的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

在/target/class/…中通过wsimport为WS-service生成存根时,我获得了一个异常。。。。。并使用devtools运行spring引导应用程序

原因:java.lang.IllegalArgumentException:com…从方法引用的服务在类加载器中不可见

我发现SpringDevTools类加载器有一个问题,RestartClassLoader,因为对一个类有两个不同的引用(RestartClassLoader和AppClassLoader

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的所有类)

  • 完成了。现在,您可以使用devtools,并且对WS生成的类没有任何问题

  • 参考:

    [1]


    [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");
            }
        }
    }