WAR(파일 형식)
WAR (file format)파일 이름 확장명 | .war |
---|---|
인터넷 미디어 유형 | 응용 프로그램/응용 프로그램/응용 프로그램 |
매직넘버 | PK\x03\x04 (표준 ZIP 파일) |
개발자 | 선 마이크로시스템스 |
컨테이너: | JSP, 자바 서블릿 |
연장 위치 | JAR |
소프트웨어 엔지니어링에서 WAR 파일(Web Application Resource[1] 또는 Web Application ARchive[2])은 JAR 파일, JavaServer Pages, Java Servlets, Java 클래스, XML 파일, 태그 라이브러리, 정적 웹 페이지(HTML 및 관련 파일) 및 웹 애플리케이션을 함께 구성하는 기타 리소스의 컬렉션을 배포하는 데 사용되는 파일이다.
내용 및 구조
WAR 파일은 JAR 파일과 같은 방법으로 디지털 서명하여 다른 사람이 소스 코드가 어디서 왔는지 확인할 수 있다.
WAR 파일에는 다음과 같은 특수 파일 및 디렉터리가 있다.
- WAR 파일의 /WEB-INF 디렉토리에는 웹 응용 프로그램의 구조를 정의하는 web.xml이라는 이름의 파일이 포함되어 있다.웹 애플리케이션이 JSP 파일만 제공하는 경우, web.xml 파일이 반드시 필요한 것은 아니다.웹 응용 프로그램이 servlet을 사용하는 경우, 서블릿 컨테이너는 web.xml을 사용하여 URL 요청이 라우팅될 서블릿을 확인한다.web.xml 파일은 또한 서블릿 내에서 참조될 수 있는 상황 변수를 정의하는 데 사용되며 배포자가 설정할 것으로 예상되는 환경 의존성을 정의하는 데 사용된다.그 예로는 이메일을 보내는 데 사용되는 메일 세션에 의존하는 경우가 있다.서블릿 컨테이너는 이 서비스를 제공할 책임이 있다.
WAR 파일의 장점
- 웹 애플리케이션의 손쉬운 테스트 및 구축
- 배포된 애플리케이션의 버전을 쉽게 식별
- 모든 Java EE 컨테이너가 WAR 파일을 지원함
- MVC 구조는 WAR 파일을 지원한다.
생산 환경이 구축 전에 충분한 테스트를 거치지 않고 수정을 촉진하지 않는다고 가정할 때, WAR 파일은 속성 파일을 사용하여 환경 특정 변수를 식별할 때 뚜렷한 이점을 갖는다.예를 들어, 테스트 환경의 LDAP 서버는 다음과 같은 것일 수 있다.ldaps://testauth.example.com:636
. 프로덕션 환경의 LDAP 서버는ldaps://auth.example.com:636
. 외부 속성 파일은 다음과 같은 것을 가진 링크를 정의한다.
Linked_PAGE=ldaps:///testauth.example.com:636
소스 코드는 속성 파일을 읽어 대상 LDAP 서버를 결정한다.이렇게 하면 개발자들은 WAR 파일 테스트 및 검증이 생산으로 승격되는 것과 정확히 동일하다는 것을 확신할 수 있다.
WAR 파일의 단점
일부에서는 동적 환경에서 소스코드에 대한 사소한 변경이 필요한 경우 WAR 파일을 이용한 웹 구축이 불리하다고 생각한다.소스 코드에 대한 각 변경 사항은 재포장하여 개발 중에 배치해야 한다.[3] 런타임 배포를 위해 구성된 경우 웹 서버를 중지할 필요가 없다.[4]
예
다음 샘플 web.xml 파일은 서블릿의 선언 및 연결을 보여준다.
<?xml 버전="1.0" 인코딩="UTF-8"?><!DOCTYPE 웹앱 PLOCAL "-//Sun Microsystems, Inc./DTD Web Application 2.2///EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <웹앱> <서블릿-이름>HelloServlet</servlet-name> mypackage.헬로Servlet</servlet-class> </servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/HelloServlet</url-pattern> </servlet-mapping> <리소스-ref> <설명> 자바스.mail용 공장에 대한 리소스 참조.적절한 SMTP 서버에 연결하기 위해 미리 구성된 전자 메일 메시지 전송에 사용할 수 있는 세션 인스턴스.</설명> <res-ref-name>메일/세션</res-ref-name> <res-type>javax.mail.세션</res-type> <res-auth>컨테이너 </res-auth> </resource-ref> </web-app>
그/WEB-INF/classes
디렉터리가 ClassLoader의 클래스 경로에 있음. (클래스 경로는 다음 위치 목록으로 구성됨).class
파일은 JVM에 의해 로드되고 실행될 수 있다.)/WEB-INF/classes
디렉토리는 웹 응용프로그램 자체와 관련된 클래스를 포함한다.
에 저장된 모든 JAR 파일/WEB-INF/lib
디렉터리는 ClassLoader의 클래스 경로에도 배치된다.
참고 항목
참조
- ^ Crossley, Allistair. "Apache Tomcat 8 (8.0.44) - Tomcat Web Application Deployment". Apache Software Foundation. Retrieved 2017-06-27.
- ^ Hunter, Jason (1999-10-15). "What's New in Java Servlet API 2.2?". JavaWorld. Retrieved 2020-11-08.
- ^ "Web Application Lifecycle". The Java EE 6 Tutorial. Oracle.
- ^ "Deploying on a running Tomcat server". Apache Software Foundation.
외부 링크
- 포장 웹 보관소(Jakarta EE 8 자습서)
- JSR 154: JavaTM 서블릿 2.4 규격