EAR(파일 형식)
EAR (file format)파일 이름 확장명 | .ear |
---|---|
인터넷 미디어 유형 | 응용 프로그램/응용 프로그램/응용 프로그램 |
개발자 | 선 마이크로시스템스 |
형식 유형 | 파일 아카이브, 데이터 압축 |
연장 위치 | JAR |
EE(Enterprise Application aRchive)는 애플리케이션 서버에 다양한 모듈을 동시에 일관성 있게 배포할 수 있도록 자카르타 EE가 하나 이상의 모듈을 단일 아카이브로 패키징하는 데 사용하는 파일 형식이다.모듈 배치 방법을 설명하는 배포 설명자(deployment descriptors)라는 XML 파일도 들어 있다.
Ant, Maven 또는 Gradle을 사용하여 EAR 파일을 작성할 수 있다.
파일 구조
EAR 파일은 .ear 확장자를 가진 표준 JAR 파일(따라서 Zip 파일)이며, 애플리케이션의 모듈을 나타내는 하나 이상의 항목이 있고, 라고 하는 메타데이터 디렉토리가 있다.META-INF
배포 설명자가 하나 이상 포함되어 있는 경우
모듈
개발자는 애플리케이션 서버에 의한 배포를 위해 EAR 파일에 다양한 아티팩트를 내장할 수 있다.
- 웹 모듈은 .war 확장자를 가지고 있다.하나 이상의 웹 컴포넌트, 기타 리소스, 웹 응용 프로그램 배포 설명자로 구성된 배포 가능한 유닛이다.웹 모듈은 표준 웹 응용 프로그램 형식의 디렉터리 및 파일 계층 구조로 포함되어 있다.
- POJO Java 클래스는 .jar 파일로 배포할 수 있다.
- Enterprise Java Bean 모듈은 .jar 확장자를 가지고 있으며, 자체로 포함되어 있다.
META-INF
배포된 영구 클래스를 설명하는 디렉터리 설명자.배포된 엔티티 콩은 다른 구성 요소 및 원격 클라이언트(원격 내보내기 시)에 볼 수 있게 된다.메시지 콩과 세션 콩은 원격 접속이 가능하다. - 리소스 어댑터 모듈에는 .rar 확장자가 있다.
계급격리
대부분의 애플리케이션 서버는 배포된 EAR 파일에서 Java 클래스로더의 격리된 트리로 클래스를 로드하여 애플리케이션을 다른 애플리케이션과 분리하지만 배포된 모듈 간에 클래스를 공유한다.예를 들어, 배포된 WAR 파일은 포함된 EAR 파일에도 포함되었지만 반드시 다른 EAR 파일의 JAR 파일에 포함되는 것은 아닌 JAR 파일에 정의된 클래스의 인스턴스를 생성할 수 있을 것이다.이러한 동작의 한 가지 주요 이유는 정적 단골격(예: Log4J)을 사용하는 애플리케이션 간에 완전한 분리를 허용하기 위함이며, 그렇지 않으면 개별 애플리케이션 간의 구성을 혼동할 수 있다.이것은 또한 서로 다른 버전의 애플리케이션과 라이브러리를 나란히 배치할 수 있게 한다.
버전 5 이전의 JBoss 애플리케이션 서버는 배포된 구성요소를 분리하지 않는다는 점에서 주목받았다.하나의 EAR 파일에 배치되는 웹 애플리케이션은 다른 EAR 및 WAR 파일의 클래스에 액세스할 수 있다.이것은 다소 논란의 여지가 있는 정책이다.Unified Classloader 설계는 클래스 데이터를 참조 또는 단순 복사본으로 공유할 수 있기 때문에 실행 중인 애플리케이션 간의 통신 오버헤드를 줄인다.그것은 또한 개발자들이 클래스 로더 나무들이 만들 수 있는 문제들을 이해할 필요가 없도록 해준다.그러나 서로 다른 버전의 종속 라이브러리가 별도의 애플리케이션에 배치되는 것을 방지한다.JBoss 4.0.2는 계층적 Classloader로 전환되었지만 버전 4.0.3에서는 역호환성을 이유로 Unified Classloader로 되돌아갔다.이제 이 동작을 변경할 수 있는 구성 옵션이 있다.JBoss 5.x, 6.x 및 7.x는 더 이상 Unified Classloading을 사용하지 않는다.
META-INF 디렉토리
그META-INF
디렉터리에 적어도 다음이 포함됨application.xml
Java EE 배포 설명자로 알려진 배포 설명자.여기에는 다음과 같은 XML 엔티티가 포함되어 있다.
icon
응용 프로그램을 나타내는 이미지의 위치를 지정한다.을 위해 분부가 만들어진다.small-icon
그리고large-icon
.display-name
는 응용 프로그램을 식별한다.description
- A
module
아카이브의 각 모듈에 대한 요소 - 0 이상
security-role
응용 프로그램의 글로벌 보안 역할에 대한 요소
각각의module
원소에는 a가 들어 있다.ejb
,web
또는java
응용 프로그램 내의 개별 모듈을 설명하는 요소.웹 모듈은 또한 다음을 제공한다.context-root
URL로 웹 모듈을 식별한다.
자카르타 EE 배포 설명자 옆에는 0개 이상의 런타임 배포 설명자가 있을 수 있다.이 매개변수는 구현별 자카르타 EE 매개변수를 구성하는 데 사용된다.