WAR File, más szóval Web Application Archive File[1] minden olyan JAR fájl, amely tartalmaz egy teljes webalkalmazást a Java Servlet specifikáció szerint. [2] Az ilyen fájlok végződése „.war“.

Web ARchive
Fájlkiterjesztés.war
FejlesztőSun Microsystems
Formátum típusaadattömörítés
Konténerformátuma ennekJSP, Java Servlet

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 szerkesztés

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 szerkesztés

A WAR file „WEB-INF“ könyvtárában szereplő „web.xml“ file az ún. deployment descriptor. (Magyarul „telepítési leíró“.[3])

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:

Hátrányok szerkesztés

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 szerkesztés

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 szerkesztés

Jegyzetek szerkesztés

  1. What's New in Java Servlet API 2.2?. (Hozzáférés: 2008. november 26.)
  2. Danny Coward, Yutaka Yoshida: Java™ Servlet Specification: Version 2.4 24. November 2003
  3. Nyékyné et al. J2EE Útikalauz Java programozóknak. ELTE TTK Hallgatói Alapítvány (2002) 

Fordítás szerkesztés

  • Ez a szócikk részben vagy egészben a WAR (Sun file format) című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
  • Ez a szócikk részben vagy egészben a Web Archive című német Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

További információk szerkesztés