Pogreška pomrčine: web.xml nedostaje, a failOnMissingWebXml postavljen je na true

1. Uvod

U ovom uputstvu razgovarat ćemo o uobičajenoj pogrešci Eclipse, "web.xml nedostaje i je postavljeno na true“, Koju dobivamo tijekom izrade web aplikacije.

2. Pogreška pomrčine

U web-aplikacijama Java, web.xml je standardni naziv deskriptora implementacije.

Web aplikaciju možemo stvoriti pomoću Mavena ili dinamični web projekt pomoću Eclipsea. Eclipse ne stvara zadani deskriptor implementacije web.xml ispod WEB-INF / imenik.

Specifikacije Java EE 6+ pokušale su de-naglasiti deskriptore implementacije, jer ih mogu zamijeniti napomenama. Međutim, niže inačice to još uvijek zahtijevaju.

The failOnMissingWebXml svojstvo je jedno od svojstava ratnog dodatka Apache Maven, org.apache.maven.plugins: maven-war-plugin. Zadana vrijednost ovog dodatka je pravi za verziju <3.1.0 i lažno za kasnije verzije.

To znači da ako koristimo maven-war-plugin prije verzije 3.1.0 i web.xml datoteka nije prisutna, tada cilj da se pakuje kao ratna datoteka neće uspjeti.

3. Korištenje web.xml

Za sve slučajeve u kojima još uvijek trebamo web.xml implementacijski deskriptor, možemo lako generirati web.xml u eklipsi:

  • Desni klik na web projekt
  • Zadržite pokazivač iznad Java EE alati na jelovniku
  • Odaberi Generiraj opisnik implementacije Stub iz podizbornika

Voila! the web.xml datoteka se generira pod WEB-INF / imenik.

4. Bez web.xml

U većini slučajeva možda nećemo trebati web.xml dosje uopće. Umjesto da ostane prazno web.xml datoteku u našem projektu, jednostavno možemo preskočiti stvaranje. Srećom, postoje dva jednostavna pristupa, ovisno o tome koja verzija maven-war-plugin koristimo.

4.1. Korištenje maven-war-plugin-a prije 3.1.0

Možemo konfigurirati sve dodatke za Maven projekt u odjeljak našeg pom.xml. Kao što smo već rekli, zadana vrijednost za failOnMissingWebXml je pravi prije verzije 3.1.0 dodatka.

Proglasimo maven-war-plugin u našem pom.xml i izričito postaviti svojstvo failOnMissingWebXml do lažno:

 maven-war-plugin 2.4 lažno 

4.2. Korištenje maven-war-plugin 3.1.0 i novije verzije

Također možemo izbjeći eksplicitno postavljanje svojstva nadogradnjom verzije maven-war-plugin. Zadana vrijednost svojstva failOnMissingWebXml je lažno za maven-war-plugin verzija 3.1.0 i novija:

 maven-war-plugin 3.1.0 

5. Zaključak

U ovom smo članku vidjeli razlog nestalih web.xml pogreška i višestruki pristupi za njezino ispravljanje.

Kao i obično, naš se primjer može naći na GitHubu.