.war vs .ear file
.war와 .ear 파일의 차이점은 무엇인가?
WAR(Web Archive)은 Java Application Server의 웹 컨테이너에 로드되는 모듈이다.Java Application Server에는 두 개의 컨테이너(런타임 환경)가 있다. 하나는 웹 컨테이너이고 다른 하나는 EJB 컨테이너다.
웹 컨테이너는 웹 요청 처리를 위해 특별히 설계된 JSP 또는 서블릿 API를 기반으로 웹 애플리케이션을 호스팅하므로 분산 컴퓨팅의 요청/응답 스타일이 더 많다.웹 컨테이너는 웹 모듈을 WAR 파일로 패키징할 것을 요구한다 - 이것은 특별한 JAR 파일이다.web.xml
에 제출하다.WEB-INF
폴더
EJB 컨테이너는 선언적 트랜잭션, 선언적 방법 수준 보안 및 멀티프로토콜 지원과 같은 확장된 비즈니스 기능을 제공하도록 설계된 EJB API를 기반으로 Enterprise Java Beans를 호스팅하므로, RPC 스타일의 분산 컴퓨팅이 더 많다.EJB 컨테이너에는 JAR 파일로 패키징되는 EJB 모듈이 필요함 - 이 모듈에는ejb-jar.xml
에 제출하다.META-INF
폴더
엔터프라이즈 애플리케이션은 웹 모듈(WAR 파일로 패키지됨), EJB 모듈(JAR 파일로 패키지됨) 또는 둘 다로 구성될 수 있는 하나 이상의 모듈로 구성될 수 있다.엔터프라이즈 애플리케이션은 EAR 파일로 패키지화됨 - 이 파일들은 다음을 포함하는 특수 JAR 파일임application.xml
에 제출하다.META-INF
폴더
기본적으로 EAR 파일은 WAR 파일과 JAR 파일을 포함하는 수퍼셋이다.Java Application Server는 독립 실행형 웹 모듈을 WAR 파일에 배포할 수 있도록 허용하지만, 내부적으로는 WAR 파일 주위에 EAR 파일을 래퍼로 만든다.Tomcat 및 Jetty와 같은 독립 실행형 웹 컨테이너는 EAR 파일을 지원하지 않으며, 이는 완전한 애플리케이션 서버가 아니다.이러한 컨테이너의 웹 애플리케이션은 WAR 파일로만 배치되어야 한다.
애플리케이션 서버에서 EAR 파일은 애플리케이션 보안 역할 매핑, EJB 참조 매핑 및 웹 모듈의 컨텍스트 루트 URL 매핑과 같은 구성을 포함한다.
또한 EAR 파일은 웹 모듈 및 EJB 모듈 외에도 RAR 파일로 패키지된 커넥터 모듈과 JAR 파일로 패키지된 클라이언트 모듈을 포함할 수 있다.
J2EE 애플리케이션에서 모듈은 그 기능을 기반으로 EAR, JAR, WAR로 패키지화된다.
JAR: 엔터프라이즈 Java 콩(클래스 파일) 및 EJB 배포 설명자를 포함하는 EJB 모듈은 .jar 확장자를 가진 JAR 파일로 패키지됨
WAR: 서블릿 클래스 파일, JSP 파일, 지원 파일, GIF 및 HTML 파일이 포함된 웹 모듈은 .war(웹 아카이브) 확장명이 있는 JAR 파일로 패키지됨
이어: 위의 모든 파일(.jar 및 .war)은 .ear(엔터프라이즈 아카이브) 확장자를 가진 JAR 파일로 패키징되어 Application Server에 배포된다.
전쟁 - 웹 아카이브.서블릿 표준에 따라 웹 어플리케이션을 배치하는 데 사용된다.WEB-INF라는 특수 디렉토리와 그 안에 있는 여러 파일 및 디렉토리(web.xml, lib, class)뿐만 아니라 모든 HTML, JSP, 이미지, CSS, JavaScript 및 웹 응용 프로그램의 기타 자원들을 포함하는 항아리 파일이다.
귀 - 엔터프라이즈 아카이브.EJB, 웹 애플리케이션, 타사 라이브러리를 포함하는 엔터프라이즈 애플리케이션을 배치하는 데 사용된다.또한 항아리 파일이며 application.xml 파일이 들어 있는 APP-INF라는 특수 디렉토리가 있으며 항아리 및 워 파일이 들어 있다.
WAR(웹 아카이브) 파일에는 서블릿 클래스 파일, JSP(Java 서블릿 페이지), HTML 및 그래픽 파일 및 기타 지원 파일이 포함되어 있다.
EAR(엔터프라이즈 아카이브) 파일에는 코드가 포함된 JAR 파일과 함께 WAR 파일이 들어 있다.
파일에는 다른 것이 있을 수 있지만 기본적으로 웹 유형의 WAR, 엔터프라이즈 유형의 EAR(WAR, 코드, 커넥터 등)과 같은 의미를 지닌다.
JAR 파일
JAR(Java Archive의 줄임말) 파일은 여러 파일을 하나의 파일로 조합할 수 있다.확장자가 .jar인 파일은 소프트웨어 개발자가 Java 클래스와 다양한 메타데이터를 배포하는 데 활용한다.이러한 파일에는 라이브러리 및 리소스 파일뿐만 아니라 부속 파일(예: 속성 파일)도 저장되어 있다.
사용자는 Java Development Kit(JDK) '.jar' 명령을 사용하여 JAR 파일을 추출하고 생성할 수 있다.ZIP 공구를 사용할 수도 있다.
JAR 파일에는 선택적 매니페스트 파일이 있다.매니페스트 파일 내의 항목은 JAR 파일의 사용을 규정한다.파일 클래스의 '주' 클래스 사양은 파일을 분리 또는 '독립 실행형' 프로그램으로 나타낸다.
WAR 파일
WAR(또는 Web Application Archive) 파일은 XML(확장 가능한 Markup Language) 파일, Java 클래스 및 인터넷 애플리케이션용 Java Server 페이지로 구성될 수 있다.또한 웹 응용프로그램을 구성하는 라이브러리와 웹 페이지를 표시하기 위해 사용된다..war' 확장명을 가진 파일에는 서버 또는 JSP(Java Server Page) 컨테이너와 함께 사용할 수 있는 웹 앱이 포함되어 있다.JSP, HTML(Hypertext Markup Language), JavaScript, 그리고 앞서 언급한 웹 앱을 만들기 위한 다양한 파일을 가지고 있다.
WAR 파일은 특별한 디렉토리와 파일을 허용하도록 구성된다.그것은 또한 코드의 진실성을 보여주기 위해 디지털 서명(JAR 파일의 그것과 유사함)을 가질 수 있다.
EAR 파일
EAR(Enterprise Archive) 파일은 JAR 파일과 WAR 파일을 단일 아카이브로 병합한다..ear' 확장명을 가진 이 파일들은 메타데이터 디렉토리를 가지고 있다.이 모듈들은 앱 서버 내의 다른 모듈들의 원활하고 동시 작동을 위해 아카이브에 패키징되어 있다.
또한 EAR 파일에는 다른 모듈의 배치를 효과적으로 지시하는 배포 설명자(XML 파일)가 있다.
http://www.wellho.net/mouth/754_tar-jar-war-ear-sar-files.html을 참조하십시오.
tar(테이프 아카이브) - 사용된 형식은 fileName, fileSize, fileData의 직렬 단위로 작성된 파일 - 압축할 수 없음.
Jar (java 아카이브) - 사용된 압축 기술 - 일반적으로 클래스/java 파일과 같은 Java 정보를 포함한다.그러나 모든 파일 및 디렉토리 구조를 포함할 수 있음
war(웹 응용프로그램 보관 파일) - jar 파일과 유사하게 배포를 위한 JSP/Servlet 규격에 따라 특정 디렉토리 구조만 가지고 있음
귀(귀) - 항아리 파일과 유사함.J2EE 요건에 따른 디렉토리 구조를 가지고 있어 J2EE 애플리케이션 서버에 배포할 수 있다. - 여러 JAR 및 WAR 파일을 포함할 수 있다.
이어 파일은 응용프로그램 서버와의 상호작용을 구성하기 위한 더 많은 옵션을 제공한다.
예를 들어 애플리케이션 서버의 최대 절전 모드 버전이 종속성이 제공하는 버전보다 오래된 경우 JBOSS용 ear-deployer-jboss-beans.xml에 다음을 추가하여 클래스 로더를 분리하고 충돌을 방지하십시오.
<bean name="EARClassLoaderDeployer" class="org.jboss.deployment.EarClassLoaderDeployer">
<property name="isolated">true</property>
</bean>
또는 src/main/application/METa-INF/jboss-app.xml에 연결:
<?xml version="1.0"?>
<jboss-app>
<loader-repository>
loader=nameofyourear.ear
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</jboss-app>
이렇게 하면 응용 프로그램과 응용 프로그램 서버 간에 클래스 로더 충돌이 발생하지 않도록 할 수 있다.
일반적으로 클래스 로더 메커니즘은 다음과 같이 작동한다.
클래스 로더에 클래스 로딩 요청이 제시되면 먼저 부모 클래스 로더에게 요청을 이행하도록 요청한다.학부모는 차례로 요청이 계층의 맨 위에 도달할 때까지 부모에게 클래스를 요청한다.계층의 맨 위에 있는 클래스 로더가 요청을 수행할 수 없는 경우, 클래스 로더를 호출한 하위 클래스 로더가 클래스를 로드할 책임이 있다.
Classloader를 분리하여 귀 클래스로더는 부모(=JBoss/기타 AS 클래스로더)를 보지 않는다.내가 아는 한, 이것은 전쟁 파일로는 가능하지 않다.
J2EE는 다음 세 가지 유형의 아카이브를 정의한다.
Java Archives (JAR) JAR 파일은 하나 이상의 Java 클래스, 매니페스트 및 설명자를 캡슐화한다.JAR 파일은 가장 낮은 수준의 보관 파일이다.JAR 파일은 J2EE에서 EJBs와 클라이언트측 Java Applications 패키징에 사용된다.
웹 아카이브(WAR) WAR 파일은 서블릿, JSP 및 지원 클래스로 만든 웹 응용 프로그램용이라는 점을 제외하면 JAR 파일과 유사하다.
EAR(Enterprise Archives) "EAR 파일에는 특정 J2EE 애플리케이션을 구성하는 모든 구성 요소가 포함되어 있다.
프로젝트 전송을 쉽게 하기 위해, 배치를 쉽게 했다.하나의 파일로 압축해야 한다.JAR(java 아카이브) 그룹의 .class 파일
WAR (웹 아카이브) - 각각의 전쟁은 하나의 웹 응용 프로그램을 나타낸다. - 서블릿, jsps와 같은 웹 관련 기술만 사용할 수 있다. - 웹 관련 기술에 의해 개발된 웹 앱인 Tomcat 서버 - jsp 서블릿 html js - 정보 표현은 거래만 할 수 없다.
EAR(엔터프라이즈 아카이브) - 각 귀는 하나의 엔터프라이즈 애플리케이션을 나타냄 - 우리는 eJB와 같은 j2ee의 모든 것을 사용할 수 있고, jms는 행복하게 사용될 수 있다. - Tomcat 서버의 서버처럼 Glassfish에서 실행할 수 있다. - 모든 웹 앱과 ejbs jms 등과 같은 j2ee의 모든 기술로 구현된 엔터프라이즈 앱은 정보 표현으로 거래를 한다.예: 은행 앱, Telecom 앱
참조URL: https://stackoverflow.com/questions/1594667/war-vs-ear-file
'programing' 카테고리의 다른 글
javac이 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않음 (0) | 2022.05.18 |
---|---|
Vuex [Quasar]에서 스토어에 액세스할 수 없음 (0) | 2022.05.18 |
Memset 정의 및 사용 (0) | 2022.05.18 |
vuex 모듈 appState가 첫 번째 인수로 전달된 모듈 네임스페이스에서 작동하지 않음 (0) | 2022.05.18 |
Vue와 함께 VeValidate를 사용하는 경우 "TypeError: 플러그인이 정의되지 않음" 오류를 수정하는 방법 (0) | 2022.05.18 |