Erwägen:
Wenn ich ein einfaches Maven- Projekt in Eclipse erstelle , wird folgende Fehlermeldung angezeigt:
web.xml fehlt und
<failOnMissingWebXml>
ist auf true gesetzt
Wie kann ich dieses Problem beheben?
eclipse
maven
jakarta-ee
m2eclipse
Yogesh Doke
quelle
quelle
maven-war-plugin
. Dies ist ein implizites Plugin, bei dem der Standardwert für diese Konfigurationseigenschaft true ist. Sie müssen es explizit deklarieren und die Konfigurationseigenschaft auf false setzen. Sehen Sie hier mehr . Oder Sie können eine leere web.xml hinzufügenAntworten:
Sie können es auch so machen:
Es wird ein WEB-INF- Ordner in src / main / webapp und eine web.xml darin generiert .
quelle
web.xml
Datei. Sie sollten dieses Problem stattdessen in Ihrem Build-Tool (dh Maven) beheben.Dies ist ein Maven-Fehler. Es heißt, dass es eine web.xml-Datei in Ihrem Projekt erwartet, da es sich um eine Webanwendung handelt, wie durch angegeben
<packaging>war</packaging>
. Für neuere Webanwendungen ist eine web.xml-Datei jedoch völlig optional. Maven muss diese Konvention einholen. Fügen Sie dies Ihrem Maven hinzupom.xml
, damit Maven aufholen kann, und Sie müssenweb.xml
Ihrem Projekt kein Nutzloses hinzufügen :Dies ist eine bessere Lösung als das Hinzufügen eines leeren
web.xml
Produkts, da Ihr Endprodukt auf diese Weise sauber bleibt und Sie lediglich Ihre Build-Parameter ändern.Für aktuellere Versionen von maven können Sie auch die kürzere Version verwenden:
quelle
Interface WebApplicationInitializer
haben, ist diese Antwort der richtige Ansatz. Es ist der vernünftige Weg, um dieses Problem zu lösen - es macht keinen Sinn, das hinzuzufügen,web.xml
nachdem man Schritte unternommen hat, um ohne es zu leben!<properties><failOnMissingWebXml>false</failOnMissingWebXml></properties>
reicht anstelle der ausführlicheren Plugin-Konfigurationseinstellungen aus.Wenn Sie bereits web.xml unter / src / main / webapp / WEB-INF haben, aber immer noch die Fehlermeldung "web.xml fehlt und ist auf true gesetzt" erhalten, können Sie überprüfen, ob Sie / src / main / webapp enthalten haben in Ihre Projektquelle.
Hier sind die Schritte, die Sie ausführen können:
(Ich habe dies mit Eclipse Mars überprüft)
quelle
Wenn Sie Spring Tool Suite verwenden, wird die Option zum Generieren von Deployment Descriptor Stub unter Java EE Tools verschoben, sodass Sie:
Dadurch wird die Datei web.xml im Ordner src / main / webapp / WEB-INF / erstellt und natürlich der Fehler aus der Datei pom.xml von Maven entfernt.
quelle
Ich habe das gleiche Problem. Nach dem Lernen und Googeln habe ich mein Problem gelöst:
Klicken Sie mit der rechten Maustaste auf den Projektordner, gehen Sie zu
Java EE Tools
und wählen SieGenerate Deployment Descriptor Stub
. Dies wirdweb.xml
im Ordner erstelltsrc/main/webapp/WEB-INF
.quelle
Sie können dies auch tun, was weniger ausführlich ist
quelle
Eclipse erkennt ein falsches Standardverzeichnis
webapp
. Deshalb sollten wir es klar durch setzenmaven-war-plugin
.Nach dem Speichern dieser Einstellung tritt der Fehler nie mehr auf, wenn er entfernt wird. (Ich kann nicht erklären warum.)
quelle
Ich hatte das gleiche Problem, obwohl ich
'src/main/webapp/WEB-INF/'
Ordner mit korrekt hatteweb.xml
.Das Problem verschwand, nachdem ich die Konfiguration (maven-> eclipse) mit der
Maven build..
Ausführung neu erstellt hattemvn eclipse:clean eclipse:eclipse
Und dann habe ich
Maven -> Update Project
Plugin-spezifische Optionen hinzugefügt (Eclipse-> Maven).quelle
Ich habe dieses Problem nur in Eclipse festgestellt, in der Maven-Befehlszeile hat alles einwandfrei funktioniert, und meine Datei web.xml war vorhanden. Es war ein ausgereiftes Projekt (bereits in der Produktion eingesetzt), das betroffen war. Mein Problem war an die Eclipse-Metadaten gebunden. Es gab ein Problem mit einer der Dateien in meinem Ordner .settings /, insbesondere wurde org.eclipse.wst.common.component geändert. Ich konnte diese Datei auf die vorherige Version zurücksetzen, wodurch das Problem in meinem Fall behoben wurde.
Beachten Sie, dass Yucis Antwort bei mir nicht funktioniert hat. Als ich versuchte, in den Eclipse-Eigenschaften auf Deployment Assembly zu klicken, wurde die Fehlermeldung "Die aktuell angezeigte Seite enthält ungültige Werte" angezeigt.
quelle
Für Projekt mit web.xml vorhanden Projekt -> Eigenschaften -> Bereitstellungsassembly, wo Sie den Ordner src / main / webapp hinzufügen können. Änderungen speichern. Reinigen Sie das Projekt, um loszulegen.
Für Projekt mit nicht vorhandener web.xml Setzen Sie failOnMissingWebXml in pom.xml unter dem Eigenschaftstag auf false.
quelle
Mach das:
Klicken Sie mit der rechten Maustaste auf Deployment Descriptor und dann auf Generate Deployment Descriptor Stub.
quelle
Es macht keinen Sinn, eine web.xml zu erstellen, die nur von elcipse gewünscht wird, auch wenn dies nicht erforderlich ist. Dies ist der Fall, wenn Sie einen Servlet-Conatiner eingebettet haben oder ohne XML-CFG leben, wie dies bei Spring-Boot der Fall ist. Das Sie nur JavaEE (nutzloses Zeug) in Eclipse auf Projektebene oder global diable
quelle
Wählen Sie Ihr Projekt aus und wählen Sie die Option "Deployment Descriptor" und dann "Generate Deployment Descriptor stub".
quelle
Der Schritt: Wählen Sie Ihr Projekt aus und wählen Sie die Option "Deployment Descriptor" und dann "Generate Deployment Descriptor stub". Das Problem ist, dass wir nicht immer web.xml benötigen. Daher ist es am besten, false an pom.xml anzuhängen
quelle
Klicken Sie mit der rechten Maustaste auf
project --> New --> Other --> Standard Deployment Descriptor(web.xml)
Drücken Sie dann Weiter. Es wird ein
WEB-INF
Ordner mit einerweb.xml
Datei darin erstellt.Das war's.
quelle
Erstellen Sie den Ordner WEB-INF in src / webapp und fügen Sie die Seite web.xml in den Ordner WEB-INF ein
quelle
Entfernen Sie Dateien aus -web / .setting & -admin / .setting
quelle
Klicken Sie mit der rechten Maustaste auf das Projekt, gehen Sie zu Maven -> Projekt aktualisieren ... , überprüfen Sie die Option Aktualisierung von Snapshots / Releases erzwingen und klicken Sie dann auf OK . Es ist fertig!
quelle