* BootStrap -> Extensions -> System ClassLoader -> Application 별 ClassLoader 순으로 Chain 생성 됨
* Application 을 Deploy 할 때 마다, 별도의 Class Loader 를 생성하며, Parent 를 System ClassLoader 로 지정한다.
* WebLogic 의 Application ClassLoader 는 3가지 종류 임 (EJB-JAR, WAR, EAR)
- EJB-JAR : 각 EJB Jar 파일 당 1개의 ClassLoader 생성함. 그래서 다른 JAR 파일의 클래스 Instance 는 참조 불가 함.
- WAR : 일반적으로, 보통의 ClassLoader 와 같이 우선순위를 갖으나, WEB-INF/classes 와 WEB-INF/lib 디렉토리의 클래스에 한하여, Parent ClassLoader 보다 WAR ClassLoader 가 우선순위를 갖도록 지정할 수 있다. PreferWebInfClasses 옵션을 true 로 설정하면 가능하다.
- EAR : EAR 로 배포 구조를 갖게되면, WAR ClassLoader 와 EJB-JAR ClassLoader 가 Delegation 관계를 갖으며 생성된다. 즉, EJB-JAR ClassLoader 를 통해 WAR ClassLoader 가 생성되어, WAR ClassLoader 가 EJB ClassLoader 의 Child 가 되므로, WAR 가 EJB 를 사용할 수 있게 되는것이다.
- WAR : 일반적으로, 보통의 ClassLoader 와 같이 우선순위를 갖으나, WEB-INF/classes 와 WEB-INF/lib 디렉토리의 클래스에 한하여, Parent ClassLoader 보다 WAR ClassLoader 가 우선순위를 갖도록 지정할 수 있다. PreferWebInfClasses 옵션을 true 로 설정하면 가능하다.
- EAR : EAR 로 배포 구조를 갖게되면, WAR ClassLoader 와 EJB-JAR ClassLoader 가 Delegation 관계를 갖으며 생성된다. 즉, EJB-JAR ClassLoader 를 통해 WAR ClassLoader 가 생성되어, WAR ClassLoader 가 EJB ClassLoader 의 Child 가 되므로, WAR 가 EJB 를 사용할 수 있게 되는것이다.
* ClassLoading 순서 : cache 점검 -> 없으면 부모에게 로드 위임 -> 부모 로드 못하면 자신이 로드
반응형
'Software Development > Middleware' 카테고리의 다른 글
[Tomcat] 1 Tomcat 에 포트 별 어플리케이션 배포 (0) | 2010.02.10 |
---|---|
[Tomcat] server.xml 에 Context 추가 후 오류 현상 (0) | 2010.02.10 |
WebLogic 에서 서로 다른 Context 간 Session 공유 (0) | 2010.01.14 |
Tomcat 5.5 JNDI 에 JDBC 등록 (Eclipse WST 플러그인 기준) (0) | 2010.01.06 |
Jeus 기본 포트 정의 참고 (0) | 2009.11.15 |