WAR (filtype)

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 22. marts 2015; checks kræver 12 redigeringer .
Webarkiv
Udvidelse .war
MIME -type applikation/java-arkiv
Udvikler Sun Microsystems
Formattype filformat
Indeholder JSP , Java-servlets
Udvidet fra ZIP

Webarkiv eller webapplikationsressource [1]  er et filformat, der beskriver, hvordan en komplet webapplikation pakkes i henhold til Java-servlet -specifikationen i en JAR- eller ZIP -fil . [2] Disse filer har filtypenavnet " .war" og kaldes derfor også "WAR-filer".

Fordele ved WAR-filer:

Struktur

Følgende eksempel viser strukturen af ​​webarkivet .

/index.html /gæstebog.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

Bemærk, at mappen " WEB-INF" indeholder en såkaldt Deployment Descriptor ved navn " web.xml", som definerer alle servlets og andre egenskaber for webapplikationen. Hvis applikationen kun indeholder JSP-filer, er denne fil ikke strengt påkrævet.

Et eksempel på en web.xml -implementeringsdeskriptor , der demonstrerer servlet -specifikationen :

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//DA" "http://java. sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <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> <ressource-ref> <beskrivelse> Ressourcehenvisning til en fabrik for javax.mail.Session tilfælde, der kan bruges til at sende elektroniske postmeddelelser, forudkonfigureret til at oprette forbindelse til den relevante SMTP-server. </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>

Mappen /WEB-INF/classes er i klassestien til ClassLoader . Disse .class java-filer vil blive indlæst, når webapplikationen indlæses og begynder at køre. Alle JAR-filer, der findes i mappen /WEB-INF/lib, vil også blive placeret på klassestien .

Oprettelse

Du kan oprette et WAR-arkiv:

  • pakker inkluderet med J2EE SDK .
  • Ved at køre "krig"-opgaven i Apache Ant .
  • Ved at køre kommandoen "mvn clean install" i Apache Maven .
  • JAR-værktøj inkluderet i J2SE . Du skal kun sikre dig, at din applikations mappestruktur matcher den, der kræves af WAR-formatet. Bare kør følgende kommando i rodmappen til din applikation:
jar cvf archiveName.war .

Ansøgning

Alle J2EE-containere understøtter WAR-filer.

For at webcontaineren ( webserveren ) kan læse implementeringsbeskrivelsen og begynde at omdirigere anmodninger til denne applikation, skal du implementere (implementere) WAR-filen i containeren. En mulighed for implementering er at kopiere WAR-filen til webcontainerens autodeploy-bibliotek.

En WAR kan signeres digitalt på samme måde som en JAR-fil for at verificere kodens ægthed.

Applikationer installeret fra WAR-filer på samme server kan ikke bruge hinandens ressourcer, deres udførelse er isoleret. De kan dog bruge delte serverbiblioteker (f.eks. har Tomcat dem i ${catalina.base}/lib), men sådanne biblioteker kan ikke installeres ved hjælp af war-filen.

Noter

  1. Apache Tomcat 9 - Implementering af Tomcat-webapplikationer . Hentet 2. juni 2019. Arkiveret fra originalen 2. juni 2019.
  2. Danny Coward, Yutaka Yoshida: Java™ Servlet Specification, Version 2.4. Arkiveret fra originalen den 7. januar 2010. 24. november 2003

Se også