Formørkelsesfejl: web.xml mangler, og failOnMissingWebXml er indstillet til sand
1. Introduktion
I denne vejledning diskuterer vi den almindelige formørkelsesfejl, “web.xml mangler og er sat til sandt“, Som vi får, mens vi opretter en webapplikation.
2. Formørkelsesfejl
I Java-webapplikationer web.xml er standardnavnet på installationsbeskrivelsen.
Vi kan oprette en webapplikation ved hjælp af Maven eller et dynamisk webprojekt ved hjælp af Eclipse. Eclipse opretter ikke standardinstallationsbeskrivelsen web.xml under WEB-INF / vejviser.
Java EE 6+ -specifikationer har forsøgt at de-fremhæve implementeringsbeskrivere, da de kan erstattes af annoteringer. De lavere versioner kræver dog stadig det.
Det failOnMissingWebXml ejendom er en af egenskaberne ved Apache Maven krigs plugin, org.apache.maven.plugins: maven-war-plugin. Standardværdien af dette plugin er rigtigt til version <3.1.0 og falsk til de senere versioner.
Det betyder, at hvis vi bruger maven-war-plugin tidligere end version 3.1.0, og web.xml filen ikke er til stede, så mislykkes målet om at pakke den som en krigsfil.
3. Brug web.xml
I alle de tilfælde, hvor vi stadig har brug for web.xml implementeringsbeskrivelse, kan vi nemt frembringe web.xml i formørkelse:
- Højreklik på webprojektet
- Hold markøren over Java EE-værktøjer i menuen
- Vælg Generer Deployment Descriptor Stub fra undermenuen

Voila! det web.xml filen genereres under WEB-INF / vejviser.
4. Uden web.xml
I de fleste tilfælde kræver vi muligvis ikke web.xml fil overhovedet. I stedet for at holde et tomt web.xml fil i vores projekt, kan vi simpelthen springe over at oprette den helt. Heldigvis er der to enkle tilgange, afhængigt af hvilken version af maven-war-plugin vi bruger.
4.1. Brug af maven-war-plugin Før 3.1.0
Vi kan konfigurere alle plugins til et Maven-projekt i sektion af vores pom.xml. Som vi tidligere har sagt, er standardværdien for failOnMissingWebXml er rigtigt før version 3.1.0 af pluginet.
Lad os erklære maven-war-plugin i vores pom.xml og indstil ejendommen eksplicit failOnMissingWebXml til falsk:
maven-war-plugin 2.4 false
4.2. Brug af maven-war-plugin 3.1.0 og senere
Vi kan også undgå at indstille ejendommen eksplicit ved at opgradere versionen af maven-war-plugin. Ejendommens standardværdi failOnMissingWebXml er falsk til maven-war-plugin version 3.1.0 og nyere:
maven-war-plugin 3.1.0
5. Konklusion
I denne artikel så vi årsagen til de manglende web.xml fejl og flere tilgange til at rette det.
Som sædvanligt kan vores eksempel findes på GitHub.