- WAR (тип файла)
-
Web Archive или Web Application Archive это формат файла, описывающий, как полное Веб-приложение упаковывается в соответствии с Java-Сервлет-спецификацией в файл в JAR- или ZIP-формата.[1] Такие файлы имеют расширение „
.war
“ и поэтому называются еще „WAR-файлами“.Приемущества WAR файлов:
- легкость разработки, тестирования и развертывания
- версию развернутого приложения легко идентифицировать
- Все J2EE контейнеры поддерживают WAR файлы
Содержание
Структура
Следующий пример показывает структуру Web Архива.
/index.html /gaestebuch.jsp /images/logo.png /WEB-INF/web.xml /WEB-INF/classes/org/wikipedia/Util.class /WEB-INF/classes/org/wikipedia/MainServlet.class /WEB-INF/lib/util.jar /META-INF/MANIFEST.MF
Обратите внимание, что в каталоге „
WEB-INF
“, находится так называемый дескриптор развертывания ("Deployment Descriptor": в свободном переводе - "инструкция по применению") по имени „web.xml
“, определяющий все сервлеты и другие свойства Web-приложения. Если приложение содержит только JSP-файлы, этот файл не строго обязателен.Пример дескриптора развертывания web.xml демонстрирующий Сервлет спецификацию:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>mypackage.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/HelloServlet</url-pattern> </servlet-mapping> <resource-ref> <description> Resource reference to a factory for javax.mail.Session instances that may be used for sending electronic mail messages, preconfigured to connect to the appropriate SMTP server. </description> <res-ref-name>mail/Session</res-ref-name> <res-type>javax.mail.Session</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app>
Директория /WEB-INF/classes находится в ClassLoader's classpath. Эти java файлы с расширенимем .class будут загружены, когда веб приложение загрузится и начнет выполняться. Любые файлы JAR находящиеся в /WEB-INF/lib директории также будут помещены в classpath.
Создание
Создать WAR-архив можно:
- пакировщиком, входящим в состав J2EE SDK.
- Выполнив в ANT задачу "war".
- JAR-утилитой, входящей в J2SE. Вы должны только сами позаботиться о том, чтобы структура каталогов вашего приложения соответствовала требуемой для WAR-формата. Просто выполните следующую команду в корневом каталоге вашего приложения:
jar cvf archiveName.war
Применение
Все J2EE контейнеры поддерживают .WAR файлы.
Чтобы web-контейнер (web-сервер) смог прочитать дескриптор развертывания и начал перенаправлять запросы на данное приложение, необходимо развернуть (deploy) WAR-файл в контейнер. Для этого стартуйте сервер и скопируйте WAR-файл в его "autodeploy"-каталог. Если вы не нашли такого каталога в вашем сервере, немедленно прекратите работать с этим сервером, пишет один разработчик [2]
WAR может быть электронно подписан так же как и JAR файл, чтобы подтвердить аутентичность кода.
Примечания
- ↑ Danny Coward, Yutaka Yoshida: Java™ Servlet Specification, Version 2.4. 24. November 2003
- ↑ How to Run a War File?
Категории:- Java
- Формат данных
Wikimedia Foundation. 2010.