it-swarm.com.de

web.xml fehlt und <failOnMissingWebXml> ist auf true gesetzt

Erwägen:

 Enter image description here

Wenn ich ein einfaches Maven project in Eclipse erstelle, erhalte ich diesen Fehler

web.xml fehlt und <failOnMissingWebXml> ist auf .__ eingestellt. wahr

Wie kann ich dieses Problem beheben?

118
Yogesh Doke

Du kannst es auch so machen:

  1. Klicken Sie mit der rechten Maustaste auf Deployment Descriptor im Project Explorer.
  2. Wählen Sie Bereitstellungsdeskriptor-Stub generieren aus.

Der Ordner WEB-INF wird in src/main/webapp und darin ein web.xml generiert.

 enter image description here

143
Wojciechu

Dies ist ein schwerwiegender Fehler. Es gibt an, dass in Ihrem Projekt eine web.xml-Datei erwartet wird, da es sich um eine Webanwendung handelt, wie durch <packaging>war</packaging> angegeben. Für aktuelle Webanwendungen ist eine web.xml-Datei jedoch vollständig optional. Maven muss diese Konvention einholen. Fügen Sie dies Ihrem Maven pom.xml hinzu, damit Maven aufholen kann, und Sie müssen Ihrem Projekt keinen unbrauchbaren web.xml hinzufügen:

<build>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

Dies ist eine bessere Lösung als das Hinzufügen eines leeren web.xml, da auf diese Weise Ihr Endprodukt sauber bleibt und Sie lediglich Ihre Build-Parameter ändern.

Für aktuellere Versionen von Maven können Sie auch die kürzere Version verwenden:

<properties>
    <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
345
Martijn Burger

Wenn Sie web.xml bereits unter/src/main/webapp/WEB-INF installiert haben und trotzdem die Fehlermeldung "web.xml fehlt und auf true" gesetzt ist, können Sie prüfen, ob Sie/src/main/hinzugefügt haben. webapp in Ihrer Projektquelle. 

Hier sind die Schritte, die Sie befolgen können:

  1. Sie können dies überprüfen, indem Sie mit der rechten Maustaste auf Ihr Projekt klicken und das Dialogfeld "Eigenschaften" sowie "Deployment Assembly" öffnen, in dem Sie Folder/src/main/webapp hinzufügen können. Speichern Sie die Einstellung und dann 
  2. Gehen Sie zum Eclipse-Menü Projekt -> Bereinigen ... und reinigen Sie das Projekt. Der Fehler sollte verschwinden. 

(Ich habe das mit Eclipse Mars bestätigt)

25
Yuci

Ich habe das gleiche Problem. Nach dem Studium 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 Sie Generate Deployment Descriptor Stub aus. Dadurch wird web.xml im Ordner src/main/webapp/WEB-INF erstellt.

16
Tung

Sie können dies auch tun, was weniger ausführlich ist 

<properties>
    <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
14
liam mooney

Wenn Sie Spring Tool Suite verwenden, wird die Option Generate Deployment Descriptor Stub unter Java EE Tools verschoben.

  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt.
  2. Wählen Sie Java EE Tools aus.
  3. Wählen Sie Bereitstellungsdeskriptor-Stub-Option generieren aus

Dadurch wird die Datei web.xml im Ordner src/main/webapp/WEB-INF/erstellt und der Fehler aus der Pom.xml-Datei von Maven entfernt.

 enter image description here

14
milan.latinovic

Eclipse erkennt falsches webapp-Verzeichnis ..__, deshalb sollten wir es eindeutig mit maven-war-plugin setzen.

<build>
  <plugins>
    <plugin>
      <groupId>org.Apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>3.0.0</version>
      <configuration>
        <webappDirectory>src/main/webapp</webappDirectory>
      </configuration>
    </plugin>
  </plugins>
</build>

Nach dem Speichern dieser Einstellung tritt der Fehler nie auf, wenn er entfernt wird . (Ich kann nicht erklären, warum.)

7
yukihane

Ich hatte das gleiche Problem, obwohl ich 'src/main/webapp/WEB-INF/' Ordner mit korrektem web.xml hatte.

Das Problem verschwand, nachdem ich die Konfiguration (. Maven-> Eclipse) mit Maven build.. neu erstellt hatte. mvn Eclipse:clean Eclipse:eclipse

Und dann habe ich Maven -> Update Project verwendet, um (Eclipse-> Maven) Plugin-spezifische Optionen hinzuzufügen.

3
Boris Treukhov

Dieses Problem ist nur in Eclipse aufgetreten. In der Maven-Befehlszeile funktionierte alles einwandfrei, und meine Datei web.xml war vorhanden. Es war ein ausgereiftes Projekt (das bereits in der Produktion eingesetzt wurde), das betroffen war. Mein Problem war an die Eclipse-Metadaten gebunden. Es gab ein Problem mit einer der Dateien in meinem Ordner .settings /, insbesondere die Komponente org.Eclipse.wst.common.component wurde geändert. Ich konnte diese Datei auf ihre vorherige Version zurücksetzen, wodurch das Problem in meinem Fall behoben wurde.

Beachten Sie, dass die Antwort von Yuci für mich nicht funktionierte. Als ich versuchte, in den Eclipse-Eigenschaften auf Deployment Assembly zu klicken, wurde die Fehlermeldung angezeigt, dass die aktuell angezeigte Seite ungültige Werte enthält.

Für Project mit web.xml present Project -> Eigenschaften -> Bereitstellungsassembly, in dem Sie den Ordner src/main/webapp . Speichern Sie die Änderungen ..__ gehen.

Für Project mit web.xml nicht vorhanden Setzen Sie failOnMissingWebXml in pom.xml unter properties tag auf false.

1
Saurav

Mach das:

Klicken Sie mit der rechten Maustaste auf Deployment Descriptor und klicken Sie auf Deployment Descriptor Stub generieren.

1
Nuno Marques

Wählen Sie Ihr Projekt .__ aus und wählen Sie die Option "Deployment Descriptor" Und wählen Sie dann "Generate Deployment Descriptor stub"

0

Klicken Sie mit der rechten Maustaste auf das Projekt, gehen Sie zu Maven -> Update Project ... , und überprüfen Sie die Aktualisierung von Snapshots/Releases erzwingen . Klicken Sie anschließend auf Ok . Es ist fertig!

0
João V.

Dateien aus -web/.setting & - admin/.setting entfernen

1

0
jun gao

Erstellen Sie den WEB-INF-Ordner in src/webapp und fügen Sie dann die web.xml-Seite in den WEB-INF-Ordner ein 

0

Der Schritt: Wählen Sie Ihr Projekt aus, und wählen Sie die Option "Bereitstellungsdeskriptor" aus. Wählen Sie dann "Generieren des Bereitstellungsdeskriptor-Stubs". Das Problem ist, dass es nicht immer der Fall ist, dass wir web.xml benötigen. Daher ist es am besten, false an pom.xml anzuhängen

0
Lotchi Dagbo

Es macht keinen Sinn, eine web.xml zu erstellen, nur elcipse will es, auch wenn es keine Notwendigkeit gibt. Dies ist der Fall, wenn Sie Servlet Conatiner eingebettet haben oder ohne xml cfg leben, wie Spring-Boot dies tut .. __ Sie können JavaEE (nutzloses Zeug) in Eclipse auf Projektebene oder global verwenden

Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK
0
cforce