Web Application Archive (WAR file; gelegentlich auch Web Archive) ist ein Dateiformat, das beschreibt, wie eine vollständige Webanwendung nach der Java-Servlet-Spezifikation in eine Datei im JAR- bzw. ZIP-Format verpackt wird.[1] Solche Dateien haben immer die Endung .war
und werden daher umgangssprachlich auch „WAR-Datei“ genannt.
Struktur
Für Webanwendungen nach der Servlet-Spezifikation ist eine bestimmte Verzeichnisstruktur vorgeschrieben, die sich auch in den WAR-Dateien wiederfindet.
Neben der für alle JAR-Dateien vorgeschriebenen Datei META-INF/MANIFEST.MF
enthält jede WAR-Datei ein Verzeichnis WEB-INF
, in dem sich ein sogenannter Deployment Descriptor (frei übersetzt als „Einsatzbeschreibung“) namens web.xml
befindet, der alle Servlets und andere Eigenschaften der Webanwendung definiert. Kompilierte Java-Klassen sind in einem Unterverzeichnis namens WEB-INF/classes
enthalten und benötigte Hilfsbibliotheken in WEB-INF/lib
. Alle Dateien, die sich nicht im WEB-INF-Verzeichnis befinden, werden als statischer Inhalt der Webanwendung interpretiert, z. B. HTML-Seiten, aber auch JavaServer Pages.
Das folgende Beispiel zeigt eine typische Struktur eines fiktiven, sehr einfachen Web Archives.
/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
Der Inhalt kann auch extrahiert werden.
mkdir WARDateiName
cd WARDateiName
jar -xvf /Pfad/zur/WARDateiName.war
created: WEB-INF/
created: WEB-INF/classes/
created: WEB-INF/classes/META-INF/
created: WEB-INF/classes/com/
......
inflated: WEB-INF/classes/context.xml
inflated: WEB-INF/classes/com/main/db.class
......
Siehe auch
Einzelnachweise
- ↑ Servlet Specification, Version 2.4 jcp.org – 24. November 2003