Eclipse-fout: web.xml ontbreekt en failOnMissingWebXml is ingesteld op true
1. Inleiding
In deze tutorial bespreken we de veelvoorkomende Eclipse-fout: "web.xml ontbreekt en is ingesteld op true“, Die we krijgen bij het maken van een webapplicatie.
2. Eclipse-fout
In Java-webtoepassingen, web.xml is de standaardnaam van de implementatiedescriptor.
We kunnen een webapplicatie maken met Maven of een dynamisch webproject met Eclipse. Eclipse maakt niet de standaarddescriptor van de implementatie web.xml onder de WEB-INF / directory.
In Java EE 6+ -specificaties is geprobeerd de nadruk te leggen op implementatiebeschrijvingen, aangezien deze kunnen worden vervangen door annotaties. De lagere versies hebben dit echter nog steeds nodig.
De failOnMissingWebXml property is een van de eigenschappen van de Apache Maven-oorlogsplug-in, org.apache.maven.plugins: maven-war-plugin. De standaardwaarde van deze plug-in is waar voor versie <3.1.0 en false voor de latere versies.
Dit betekent dat als we maven-war-plugin eerder dan versie 3.1.0, en de web.xml bestand niet aanwezig is, dan mislukt het doel om het als een war-bestand te verpakken.
3. Met behulp van web.xml
Voor alle gevallen waarin we de web.xml implementatie descriptor, kunnen we gemakkelijk genereren web.xml in Eclipse:
- Klik met de rechtermuisknop op het webproject
- Plaats de muisaanwijzer op Java EE-hulpprogramma's op het menu
- Selecteer Genereer een implementatiebeschrijving Stub uit het submenu
Voila! de web.xml bestand wordt gegenereerd onder de WEB-INF / directory.
4. Zonder web.xml
In de meeste gevallen hebben we de web.xml bestand helemaal. In plaats van iets blanco te houden web.xml bestand in ons project, kunnen we het gewoon helemaal overslaan. Gelukkig zijn er twee eenvoudige benaderingen, afhankelijk van welke versie van het maven-war-plugin we gebruiken.
4.1. Met behulp van maven-war-plugin Before 3.1.0
We kunnen alle plug-ins van een Maven-project configureren in het sectie van onze pom.xml. Zoals we eerder hebben gezegd, is de standaardwaarde voor failOnMissingWebXml is waar vóór versie 3.1.0 van de plug-in.
Laten we het maven-war-plugin in onze pom.xml en stel de eigenschap expliciet in failOnMissingWebXml naar false:
maven-war-plugin 2.4 false
4.2. Met behulp van maven-war-plugin 3.1.0 en hoger
We kunnen ook voorkomen dat de eigenschap expliciet wordt ingesteld door de versie van maven-war-plugin. De standaardwaarde van de eigenschap failOnMissingWebXml is false voor maven-war-plugin versie 3.1.0 en hoger:
maven-war-plugin 3.1.0
5. Conclusie
In dit artikel hebben we de reden achter de vermissing gezien web.xml fout en meerdere benaderingen om het te repareren.
Zoals gewoonlijk is ons voorbeeld te vinden op GitHub.