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.


$config[zx-auto] not found$config[zx-overlay] not found