1. WebLogic 클래스로더 계층 구조
클래스로더 |
로드하는 클래스와 위치 |
1. SYSTEM 클래스로더 |
WebLogic 솔루션을 위한 클래스 CLASSPATH에 지정된 클래스 PRE_CLASSPATH와 EX_PRE_CLASSPATH에 지정된 클래스 |
2. DOMAIN 클래스로더 |
$도메인 디렉터리/lib에 있는 클래스 |
3. APPLICATION 클래스로더 |
weblogic-application.xml에 설정된 J2EE 공유 라이브러리 클래스 애플리케이션에서 지정한 모듈 J2EE 5 표준의 <library-directory> 지정 디렉터리 <EAR>/APP-INF/lib 디렉터리에 있는 클래스 |
4. WEB APP 클래스로더 |
weblogic.xml에 설정된 J2EE 공유 라이브러리 클래스 WEB-INF/classes 디렉터리 WEB-INF/lib 디렉터리 |
2. WebLogic Filtering 클래스로더
- 클래스로더 계층 구조에서 DOMAIN 클래스로더와 APPLICATION 클래스로더 사이에 들어간다.
- FilteringClassLoader는 특정 클래스를 항상 APPLICATION 클래스로더에서 로딩하도록 한다.(예를들어, Xerces, Ant 등과 같이 WebLogic에 기본 패키징된 버전과 다른 패키지를 사용하고자 할때 애플리케이션과 함께 배포된 클래스 사용가능하도록 함)
- EAR의 APP-INF/lib 디렉터리 또는 WAR의 WEB-INF/lib 디렉터리에서 우선으로 클래스를 로딩한다.
- weblogic-application.xml 또는 weblogic.xml 파일에 설정 가능함(10.3.3 버전 이후)
- 설정방법은 <prefer-application-package> 태그와 <prefer-web-inf-classes> 태그를 활용하여 설정할 수 있지만, <prefer-application-package>태그 사용을 권장한다.
<예시#1>
아래 정의된 패키지의 클래스들을 WebLogic제품에 설치된 버전 대신에 Application과 함께 배포된 클래스들을 로딩하라는 예시임
<prefer-application-packages> <package-name>org.apache.log4j.*</package-name> <package-name>antlr.*</package-name> </prefer-application-packages> |
<예시#2>
Web App의 WEB-INF디렉터리에서 우선 클래스를 로딩하라는 예시임. 특정 패키지를 지정하지는 않음에 주의할 것
<container-descriptor> <prefer-web-inf-classes>true</prefer-web-inf-classes> </container-descriptor> |
[클래스로더 관련 다른글]
'WAS > WebLogic' 카테고리의 다른 글
[Tips] WLST Quick Reference (0) | 2017.12.27 |
---|---|
[Tips] Managed Server가 Admin Server와 연결 끊기는 기준 옵션 (0) | 2017.12.21 |
[Tips] WLS 12.2.1에서 향상된 데이터소스 System Properties (0) | 2017.10.25 |
[Tips] JDBC 프로퍼티에 오라클 V$SESSION 컬럼값 설정 (0) | 2017.10.18 |
[Tips] 세션ID(Session ID) 포맷 (0) | 2017.10.16 |