Hva er WAR-filformatet?
.war (Java Web Archive) er et arkivformat som ligner på en JAR-fil, bygget på den standard ZIP-beholderen. .war-filer inneholder Java-webapplikasjoner og server-side-komponenter som kan distribueres og kjøres på en servlet-container som Apache Tomcat eller Jetty. I tillegg til kompilerte .class-filer kan arkivet lagre tilleggsressurser som skal kjøres på serveren, inkludert .jsp-sider, statisk HTML og CSS. Den obligatoriske mappen WEB-INF/ inneholder distribusjonsbeskrivelsen web.xml og en lib/-mappe for inkluderte avhengighets-.jar-filer.
Bruk av .war-filer
En .war-fil kan, akkurat som alle arkiver, pakkes ut for å se kildekoden og andre ressurser - gi den nytt navn til .zip og åpne den med et hvilket som helst arkivverktøy. Kjøremiljøet krever imidlertid at applikasjonen forblir i .war-format for distribusjon; servlet-containeren håndterer klasselasting og ruting av forespørsler. Moderne Spring Boot-prosjekter leveres ofte som en selvstendig «fat-JAR» i stedet for en .war, men WAR-distribusjon forblir standard på Jakarta EE-servere som WildFly og WebSphere. .war er webapplikasjons-motstykket til .EAR-arkiver, som bunter sammen komplette bedriftsapplikasjoner.
Sikkerhet og trygghet
RISIKO: MEDIUMEn WAR inneholder kjørbar kode på serversiden (kompilerte servlets og inkluderte JAR-biblioteker), så distribusjon av en slik kjører koden på serveren din med serverens rettigheter. Distribuer kun WAR-filer fra pålitelige kilder; en ondsinnet eller kompromittert WAR kan inneholde et web-skall eller sårbare avhengigheter. Inspeksjon (gi nytt navn til .zip) er trygt; distribusjon er det risikable trinnet. Hold servlet-containeren og WAR-filens inkluderte biblioteker oppdatert (forsyningskjederisiko, f.eks. sårbare loggingsbiblioteker).
Formatdetaljer
i et nøtteskall- Konqueror-webarkiv - KDEs Konqueror kunne lagre en nettside (og ressurser) som et .war-arkiv - en sjelden, eldre KDE-bruk, ikke det dominerende formatet.
- WAR (lyd/sample) og spilldata - Noen få eldre verktøy brukte .war for rå lydsampler eller arkiver for spillressurser (f.eks. enkelte motorer); ikke relatert til Java-formatet.
Programmer som åpner WAR-filer
Tekniske detaljer
dyp spesifikasjon| Beholderformat | ZIP-arkiv; magiske byte PK (0x50 0x4B 0x03 0x04) ved offset 0 - identisk med standard ZIP |
| Komprimeringsmetode | DEFLATE per oppføring (ZIP-standard); individuelle oppføringer kan være STORED ukomprimert |
| MIME-type | application/java-archive |
| Byterekkefølge | Little-endian (arvet fra ZIP-spesifikasjonen) |
| Påkrevd mappestruktur | Må inkludere WEB-INF/-mappe som inneholder web.xml-distribusjonsbeskrivelse, classes/- og lib/-undermapper |
| Koding | Binær |
| Typisk filstørrelse | 1 MB - 300 MB; varierer med antall inkluderte avhengighets-JAR-er og statiske ressurser |
| Integritet / signering | Per-oppføring CRC-32; valgfri JAR-kodesignering via META-INF/ .SF / .RSA-signaturfiler |
| Maks antall arkivoppføringer | 65 535 (standard ZIP); ZIP64-utvidelsen fjerner denne grensen |
| Distribusjonsmål | Servlet-containere og Jakarta EE-applikasjonsservere: Apache Tomcat, Jetty, WildFly, GlassFish, WebSphere |
| Versjonsdeklarasjon | Servlet/Jakarta EE-spesifikasjonsversjon angitt i WEB-INF/web.xml <web-app>-element; valgfri META-INF/MANIFEST.MF |
| Klasseisolering | Hver distribuert WAR får en isolert klasselaster; forhindrer bibliotekversjonskonflikter mellom applikasjoner som kjører samtidig |
| Hierarki i Java EE-pakking | WAR er webapplikasjonslaget; JAR inneholder biblioteker/apper; EAR (Enterprise Archive) pakker WAR-er og EJB JAR-er inn i én distribuerbar enhet |
| Plattformstøtte | Plattformuavhengig; kjører på alle operativsystemer med en JVM og kompatibel servlet-container (Windows, Linux, macOS) |
| Varmdistribusjon | De fleste servlet-containere støtter distribusjon eller utskifting av en WAR-fil uten full omstart av serveren (drop-in-distribusjon) |
| Utgitt | 1999 (Java Servlet 2.2 / J2EE 1.2) |
| Siste versjon | Tracks Jakarta EE / Servlet spec (Jakarta Servlet 6.0, 2022); WAR layout itself is stable |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | jakarta.ee |
WAR-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om WAR-filer.