WAR (fájlformátum)

A Wikipédiából, a szabad enciklopédiából
Jump to navigation Jump to search
Web ARchive
Fájlkiterjesztés .war
Fejlesztő Sun Microsystems
Formátum típusa adattömörítés
Konténerformátuma ennek JSP, Java Servlet

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“.

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 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.

További információk[szerkesztés]