Hvad er WAR-filformatet?
.war (Java Web Archive) er et arkivformat, der minder om en JAR-fil, bygget på den standardiserede ZIP-container. .war-filer indeholder Java-webapplikationer og server-side komponenter, der kan udrulles og køres på en servlet-container såsom Apache Tomcat eller Jetty. Udover kompilerede .class-filer kan arkivet gemme yderligere ressourcer, der skal køres på serveren, herunder .jsp-sider, statisk HTML og CSS. Den obligatoriske WEB-INF/-mappe indeholder web.xml-deployment-descriptoren og en lib/-mappe til medfølgende afhængigheds-.jar-filer.
Brug af .war-filer
En .war-fil kan, ligesom ethvert arkiv, udpakkes for at se kildekoden og andre ressourcer - omdøb den til .zip og åbn den med et hvilket som helst arkivværktøj. Eksekveringsmiljøet kræver dog, at applikationen forbliver i .war-format ved udrulning; servlet-containeren håndterer class-loading og request-routing. Moderne Spring Boot-projekter leveres ofte som en selvstændig fat-JAR i stedet for en .war, men WAR-udrulning forbliver standard på Jakarta EE-servere såsom WildFly og WebSphere. .war er webapplikations-modstykket til .EAR-arkiver, som samler fulde virksomhedsapplikationer.
Sikkerhed og tryghed
RISIKO: MEDIUMEn WAR indeholder eksekverbar server-side kode (kompilerede servlets og medfølgende JAR-biblioteker), så udrulning af en sådan kører koden på din server med serverens rettigheder. Udrul kun WAR-filer fra betroede kilder; en ondsindet eller kompromitteret WAR kan indeholde en web-shell eller sårbare afhængigheder. Inspektion (omdøb til .zip) er sikkert; udrulning er det risikable trin. Hold din servlet-container og WAR-filens medfølgende biblioteker opdateret (forsyningskæderisiko, f.eks. sårbare logningsbiblioteker).
Formatdetaljer
kort fortalt- Konqueror-webarkiv - KDE's Konqueror kunne gemme en webside (og aktiver) som et .war-arkiv; en sjælden, forældet KDE-brug, ikke det dominerende format.
- WAR (lyd/sample) og spildata - Enkelte ældre værktøjer brugte .war til rå lyd-samples eller spil-arkiver (f.eks. visse spilmotorer); ikke relateret til Java-formatet.
Programmer der åbner WAR-filer
Tekniske detaljer
dyb specifikation| Container-format | ZIP-arkiv; magic bytes PK (0x50 0x4B 0x03 0x04) ved offset 0 - identisk med standard ZIP |
| Komprimeringsmetode | DEFLATE pr. post (ZIP-standard); individuelle poster kan være STORED ukomprimeret |
| MIME-type | application/java-archive |
| Byte-orden | Little-endian (nedarvet fra ZIP-specifikationen) |
| Påkrævet mappestruktur | Skal inkludere WEB-INF/-mappe indeholdende web.xml-deployment-descriptor, classes/- og lib/-undermapper |
| Kodning | Binær |
| Typisk filstørrelse | 1 MB - 300 MB; varierer med antallet af medfølgende afhængigheds-JARs og statiske aktiver |
| Integritet / signering | Pr. post CRC-32; valgfri JAR-kodesignering via META-INF/ .SF / .RSA signaturfiler |
| Maks. arkivposter | 65.535 (standard ZIP); ZIP64-udvidelsen ophæver denne grænse |
| Udrulningsmål | Servlet-containere og Jakarta EE-applikationsservere: Apache Tomcat, Jetty, WildFly, GlassFish, WebSphere |
| Versionserklæring | Servlet/Jakarta EE-specifikationsversion angivet i WEB-INF/web.xml <web-app> element; valgfri META-INF/MANIFEST.MF |
| Klasse-isolering | Hver udrullet WAR får en isoleret classloader; forhindrer biblioteksversionskonflikter mellem udrullede applikationer |
| Hierarki i Java EE-pakning | WAR er webapplikations-laget; JAR indeholder biblioteker/apps; EAR (Enterprise Archive) pakker WARs og EJB JARs i én udrullelig enhed |
| Platform-understøttelse | Platformsuafhængig; kører på ethvert operativsystem med en JVM og kompatibel servlet-container (Windows, Linux, macOS) |
| Hot deployment | De fleste servlet-containere understøtter udrulning eller udskiftning af en WAR-fil uden fuld genstart af serveren (drop-in udrulning) |
| Udgivet | 1999 (Java Servlet 2.2 / J2EE 1.2) |
| Seneste version | Tracks Jakarta EE / Servlet spec (Jakarta Servlet 6.0, 2022); WAR layout itself is stable |
| Åben standard | Ja · royaltyfri |
| Specifikation | jakarta.ee |
WAR-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om WAR-filer.