WAR File, más szóval Web Application Archive File minden olyan JAR fájl, amely tartalmaz egy teljes webalkalmazást a Java Servlet specifikáció szerint. Danny Coward, Yutaka Yoshida: Java™ Servlet Specification: Version 2.4 24. November 2003 Az ilyen fájlok végződése „.war“.
A programkód megbízhatóságának ellenőrzése végett a WAR file aláírható digitálisan ugyanúgy, ahogy a JAR file is.
Szerkezet A JavaServlet specifikáció definiálja a webalkalmazások szabványos könyvtárszerkezetét. Ez a szerkezet jelenik meg a war fájlokban is.
A lefordított Java osztályok „WEB-INF/classes“ alkönyvtárban vannak, az ott szereplő osztályok (.class fájlok) betöltődnek a webalkalmazás futása során.
A felhasznált programkönyvtárak (azaz JAR fájlok) a WAR file „WEB-INF/lib“ könyvtárában vannak, onnan tölti be őket az alkalmazásszerver ClassLoadere.
Minden olyan fájl, ami nem a WEB-INF könyvtárban van, statikus tartalomként értelmeződik, azaz lehet például HTML vagy JSP lap.
Az alábbi példa egy egyszerű WAR fájl szerkezetét mutatja: /index.html /vendegkonyv.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
A JAR fájlokban is megadható „META-INF/MANIFEST.MF“ mellett a WAR fájlok tartalmazhatnak egy „WEB-INF“ könyvtárat is, amelyben szerepelhet egy „web.xml“ fájl is, ami a webalkalmazás tulajdonságait és a tartalmazott servleteket írja le.
WEB-INF/web.xml A WAR file „WEB-INF“ könyvtárában szereplő „web.xml“ file az ún. deployment descriptor. (Magyarul „telepítési leíró“.)
Ha a webalkalmazás csak JSP oldalakat tartalmaz, akkor a web.xml elhagyható. Ha viszont servleteket is tartalmaz, akkor a web.xml fájlban adható meg, hogy egy-egy adott URL kérést mely servlethez irányítson a servlet container.
A web.xml tartalmazhatja továbbá kontextusváltozók definícióját is, amelyek a servletekból hivatkozhatóak. Tartalmazhat továbbá környezeti függőségeket is, amelyeket az alkalmazásszervernek rendelkezésre kell bocsátania a futtatáshoz.
Környezeti függőség lehet például egy mail session e-mailek küldéséhez: <?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>
<display-name> Az alkalmazás neve </display-name>
<description> Az alkalmazás leírása </description>
<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> Factory osztály egy adott SMTP serverhez megfelelően konfigurált javax.mail.Session objektumok példányosításához. </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>
A web.xml formátumát (sémadefinícióját) a Sun a 2.3 verzióig DTD fájllal, a 2.4 verziótól kezdődően XSD fájllal adja meg: DTD a Servlet 2.2 specifikációhoz DTD a Servlet 2.3 specifikációhoz XSD a Servlet 2.4 specifikációhoz XSD a Servlet 2.5 specifikációhoz
Hátrányok A WAR file-ok egyik hátránya, hogy futásidőben nem végezhetőek el apró konfigurációs változtatások. Minden változtatáshoz újra kell generálni és telepíteni az egész WAR fájlt. A legtöbb JEE web container lehetővé teszi azonban a webalkalmazások könyvtárként való telepítését WAR fájl helyett, így a webalkalmazások fejlesztése során könnyen és gyorsan lehet tesztelni a változtatásokat. Az ilyen könyvtárakat hívják úgy is, hogy „exploded archive“.
Lásd még A Konqueror nevű böngésző is hoz létre „.war“ kiterjesztésű fájlokat, de azoknak teljesen más a formátuma, a nevek egyezése véletlen.
Kapcsolódó szócikkek JAR (fájlformátum) EAR (fájlformátum) ZIP (fájlformátum)
Jegyzetek
Fordítás
További információk Servlet tutorial Sun Microsystems: Manually Creating a Simple Web ARchive (WAR) File Sun Microsystems: XML Schema for the Servlet 2.5 Web ARchive (WAR) File Sun Microsystems: XML Schema for the Servlet 2.4 Web ARchive (WAR) File
Kategória:Java Kategória:Fájlformátumok