Chyba zatmenia: web.xml chýba a parameter failOnMissingWebXml je nastavený na hodnotu true

1. Úvod

V tomto výučbe sa budeme zaoberať bežnou chybou Eclipse, “web.xml chýba a je nastavený na hodnotu true„, Ktoré dostaneme pri vytváraní webovej aplikácie.

2. Chyba zatmenia

Vo webových aplikáciách Java web.xml je štandardný názov deskriptora nasadenia.

Môžeme vytvoriť webovú aplikáciu pomocou Mavenu alebo dynamický webový projekt pomocou Eclipse. Eclipse nevytvára predvolený deskriptor nasadenia web.xml pod WEB-INF / adresár.

Špecifikácie Java EE 6+ sa pokúsili de-zdôrazniť deskriptory nasadenia, pretože ich možno nahradiť anotáciami. Nižšie verzie to však stále vyžadujú.

The failOnMissingWebXml property je jednou z vlastností vojnového pluginu Apache Maven, org.apache.maven.plugins: plugin maven-war. Predvolená hodnota tohto doplnku je pravda pre verziu <3.1.0 a nepravdivé pre neskoršie verzie.

To znamená, že ak používame maven-war-plugin - staršia ako verzia 3.1.0 a - web.xml súbor nie je prítomný, potom cieľ zbaliť ho ako vojnový súbor zlyhá.

3. Používanie web.xml

Pre všetky prípady, keď stále potrebujeme web.xml deskriptor nasadenia, môžeme ľahko generovať web.xml v Zatmení:

  • Kliknite pravým tlačidlom myši na webový projekt
  • Umiestnite kurzor myši na Nástroje Java EE v ponuke
  • Vyberte Generovať deskriptor nasadenia Stub z podponuky

Voila! the web.xml súbor je generovaný pod WEB-INF / adresár.

4. Bez web.xml

Vo väčšine prípadov nemusíme vyžadovať web.xml súbor vôbec. Namiesto prázdneho miesta web.xml súboru v našom projekte, môžeme jednoducho preskočiť jeho vytvorenie úplne. Našťastie existujú dva jednoduché prístupy, v závislosti od verzie servera maven-war-plugin používame.

4.1. Používanie maven-war-pluginu Pred 3.1.0

Môžeme nakonfigurovať všetky doplnky projektu Maven v časť našej pom.xml. Ako sme už povedali, predvolená hodnota pre failOnMissingWebXml je pravda pred verziou 3.1.0 doplnku.

Vyhlásime maven-war-plugin v našom pom.xml a výslovne nastaviť vlastnosť failOnMissingWebXml do nepravdivé:

 maven-war-plugin 2.4 false 

4.2. Používanie maven-war-pluginu 3.1.0 a novších

Tiež sa môžeme vyhnúť explicitnému nastaveniu vlastnosti aktualizáciou verzie maven-war-plugin. Predvolená hodnota vlastnosti failOnMissingWebXml je nepravdivé pre maven-war-plugin verzia 3.1.0 a novšia:

 maven-war-plugin 3.1.0 

5. Záver

V tomto článku sme videli dôvod nezvestných web.xml chyba a viacero prístupov k jej náprave.

Náš príklad ako obvykle nájdete na GitHub.


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