자바.java.java잘못된 인수메서드에서 참조된 예외는 클래스 로더에서 볼 수 없습니다.
wimport in /target/class/...에서 WS 서비스에 대한 스텁을 생성하고 devtools를 사용하여 스프링 부팅 애플리케이션을 실행할 때 예외가 발생했습니다.
원인: java.lang.잘못된 인수예외: com...메서드에서 참조된 서비스가 클래스 로더에서 표시되지 않습니다.
클래스에 대한 두 가지 다른 참조(RestartClassLoader 및 AppClassLoader)로 인해 Spring devtools 클래스 로더인 RestartClassLoader에 문제가 있음을 발견했습니다.
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");
}
}
}
spring-devtools.properties의 jar 파일에 참조를 추가하여 다시 시작하려고 했습니다.jar=/...jar
Spring Boot 2.0.0.Java 9 릴리스
생성된 클래스이므로 Spring Devtools "다시 시작" 클래스 로더에서 제외해야 합니다.
- 작성
/src/main/resources/META-INF/spring-devtools.properties
파일 다음과 같은 속성 추가
restart.exclude.*
클래스를 다시 시작 클래스 로더에서 제외하려면 다음과 같이 하십시오.restart.exclude.mygeneratedclasses=/*[generated]*.class
의 모든 클래스를 제외합니다.generated
패키지 또는 클래스 이름의 일부로 단어 지정)완료. 이제 devtools를 사용할 수 있으며 WS 생성 클래스에 문제가 없습니다.
참조:
[1] https://github.com/spring-projects/spring-boot/issues/4529
또는 Spring Dev Tools 종속성이 애플리케이션에 영향을 미치지 않는 경우에만 제거하십시오.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
언급URL : https://stackoverflow.com/questions/50465170/java-lang-illegalargumentexception-referenced-from-a-method-is-not-visible-from
'code' 카테고리의 다른 글
MariaDB 기본 플로트는 소수점 이하의 자리를 포함할 수 없습니다. (0) | 2023.07.22 |
---|---|
@Primary 빈이 존재하는 경우 다른 빈을 생성할 수 있는 이유는 무엇입니까? (0) | 2023.07.22 |
printf 콘솔에서 인쇄 안 함 (0) | 2023.07.17 |
클래스 속성과 인스턴스 속성의 차이점은 무엇입니까? (0) | 2023.07.17 |
파이썬에서 클래스를 설계하려면 어떻게 해야 합니까? (0) | 2023.07.17 |