1. 개요

클래스패스끼리 충돌이 나서 기동시 에러가 나거나, 로딩하지 않아도 되는 클래스를 인스턴스가 물고 올라오는 경우가 있다.

웹스피어에서 해당 인스턴스의 소스 lib 부터 읽도록 클래스 로더 로딩 순서를 변경하고 싶을때 설정하는 옵션을 알아보자.

 

2. 클래스패스 설정

디폴트 소스에 들어있지 않은 클래스패스를 추가하는 경우는 다음과 같다.

 

애플리케이션 서버 > <인스턴스명> > 프로세스 정의 > JVM(Java Virtual Machine)
 

위 칸에 클래스패스를 추가해주면 소스 이외에 있는 클래스패스를 인스턴스가 읽을 수 있다.

 

3. 클래스로더 순서변경

 

 

클래스 로더 순서

 

위에서처럼 설정하면 클래스패스를 인스턴스 소스에 있는 것부터 시작해서 상위 순서로 읽는다.

엔진단의 클래스와 충돌이 생기거나 상위 디렉토리의 클래스와 충돌이 생길경우 위처럼 설정하면 해결이 될 수 있다.

jvm 설정에서 상세한 클래스로더를 체크하면 기동시 gc 로그에서 클래스 로더 로딩 순서도 확인할 수 있다.

 

4. WAR 클래스 로더 정책

 

WAR 클래스 로더 정책 

 
위 설정은 WAR 소스에 있는 lib 만 읽도록 하겠다는 설정이다.

다른 디렉토리의 lib 를 참조할 필요가 없으면(예, ear 밑에 lib 등) 위 설정을 추가해주면 된다.