본문 바로가기

WEB개발/Spring

unnamed module of loader org springframework boot loader launch launchedclassloader

`unnamed module` 오류는 “같은 클래스가 서로 다른 ClassLoader에서 로드될 때”

 

Object res = httpClient.call(); // 다른 ClassLoader에서 로드된 DTO
MyDto dto = (MyDto) res;  // 💥 여기서 터짐

 

java.lang.ClassCastException: class com.app.MyDto cannot be cast to class com.app.MyDto (com.app.MyDto is in unnamed module of loader 'app'; com.app.MyDto is in unnamed module of loader org.springframework.boot.loader.LaunchedURLClassLoader)

 

클래스 ClassLoader
MyDto (내 코드) AppClassLoader
MyDto (jar 안 jar) LaunchedURLClassLoader

 

 

myapp.jar
 └─ BOOT-INF/
     ├─ classes/        ← 내 프로젝트 클래스
     │    com/app/MyDto.class
     └─ lib/
          common.jar    ← 또 MyDto가 들어 있음

 

위치 ClassLoader
BOOT-INF/classes AppClassLoader (또는 RestartClassLoader)
BOOT-INF/lib/*.jar LaunchedURLClassLoader

 

서로 다른 ClassLoader면 같은 이름이어도 다른 클래스로 취급한다.

'WEB개발 > Spring' 카테고리의 다른 글

Actuator  (0) 2026.01.22
[Spring] 주석3 (Annotation, DTO)  (0) 2026.01.15
AOP @Cacheable @CacheEvict  (0) 2026.01.12
@Transactional (Propagation)  (0) 2025.12.12
[Spring] Request를 처리하는 주석 (Annotation)  (0) 2025.02.21