Home » Java » java.lang.IllegalArgumentException referenced from a method is not visible from class loader

java.lang.IllegalArgumentException referenced from a method is not visible from class loader

Posted by: admin June 30, 2018 Leave a comment

Questions:

I obtained an exception when generated a stub for a WS service by wsimport in /target/class/….. and run a spring boot application with devtools.

Caused by: java.lang.IllegalArgumentException: com….Service referenced from a method is not visible from class loader

I found that an issue with spring devtools class loader, RestartClassLoader, because of two different references to a Class (RestartClassLoader and AppClassLoader)

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

I was trying to add a reference to a jar file in spring-devtools.properties to restart.include=/…..jar

Spring Boot 2.0.0.RELEASE Java 9

Answers: