3.7. 클래스 로드 및 하위 배포

3.7.1. 엔터프라이즈 아카이브의 모듈 및 클래스 로드

EAR(Enterprise Archives)는 JAR 또는 WAR 배포와 같은 단일 모듈로 로드되지 않습니다. 여러 고유한 모듈로 로드됩니다.

다음 규칙은 EAR에 있는 모듈을 결정합니다.

  • EAR 아카이브의 루트에 있는 lib/ 디렉터리의 내용은 모듈입니다. 이것을 parent 모듈이라고 합니다.
  • 각 WAR 및 Jakarta Enterprise Beans JAR 하위 배포는 모듈입니다. 이러한 모듈에는 다른 모듈과 동일한 동작과 상위 모듈에 대한 암시적 종속성이 있습니다.
  • 하위 배포는 parent 모듈 및 기타 비WAR 하위 배포에 대한 암시적 종속성을 갖습니다.

JBoss EAP에 하위 배포 클래스 로더 격리가 기본적으로 비활성화되어 있기 때문에 비 WAR 하위 배포의 하위 종속성이 발생합니다. 상위 모듈에 대한 종속성은 하위 배포 클래스 로더 격리와 관계없이 유지됩니다.

중요

하위 배포가 WAR 하위 배포에 대한 암시적 종속성을 얻지 못합니다. 모든 하위 배포는 다른 모듈에서 수행되는 것처럼 다른 하위 배포에 대한 명시적 종속성을 사용하여 구성할 수 있습니다.

엄격한 호환성이 필요한 경우 하위 배포 클래스 로더 격리를 활성화할 수 있습니다. 단일 EAR 배포 또는 모든 EAR 배포에 대해 활성화할 수 있습니다. 자카르타 EE 사양에서는 각 하위 배포의 MANIFEST.MF 파일에서 종속성을 Class-Path 항목으로 명시적으로 선언하지 않는 한 이식 가능한 애플리케이션이 서로 액세스 가능한 하위 배포를 사용하지 않도록 권장합니다.