web-dev-qa-db-fra.com

le fichier web.xml est manquant et <failOnMissingWebXml> est défini sur true

Considérer:

 Enter image description here

Lorsque je crée un simple Maven projet dans Eclipse je reçois cette erreur:

le fichier web.xml est manquant et <failOnMissingWebXml> est défini sur vrai

Comment puis-je résoudre ce problème?

118
Yogesh Doke

Vous pouvez le faire aussi comme ça:

  1. Cliquez avec le bouton droit sur Deployment Descriptor dans Project Explorer.
  2. Sélectionnez Générer un stub de descripteur de déploiement.

Il générera le dossier WEB-INF dans src/main/webapp et un web.xml.

 enter image description here

143
Wojciechu

C'est une erreur maven. Il indique qu'il attend un fichier web.xml dans votre projet car il s'agit d'une application Web, comme indiqué par <packaging>war</packaging>. Cependant, pour les applications Web récentes, un fichier web.xml est totalement facultatif. Maven doit rattraper son retard sur cette convention. Ajoutez-le à votre maven pom.xml pour le laisser suivre et vous n’aurez pas besoin d’ajouter un web.xml inutile à votre projet:

<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>

C’est une meilleure solution que d’ajouter un web.xml vide, car de cette façon votre produit final reste propre, vous ne faites que modifier vos paramètres de construction.

Pour les versions plus récentes de maven, vous pouvez également utiliser la version plus courte:

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

Si vous avez déjà un fichier web.xml sous/src/main/webapp/WEB-INF mais que le message d'erreur "Web.xml est manquant et qu'il est défini sur true", vous pouvez vérifier si vous avez inclus/src/main/webapp dans la source de votre projet. 

Voici les étapes que vous pouvez suivre:

  1. Vous pouvez le vérifier en cliquant avec le bouton droit de la souris sur votre projet et en ouvrant la boîte de dialogue Propriétés correspondante, puis en cliquant sur "Assemblage de déploiement", dans lequel vous pouvez ajouter un dossier/src/main/webapp. Enregistrez le paramètre, puis 
  2. Allez dans le menu Eclipse Projet -> Nettoyer ... et nettoyez le projet. L’erreur devrait disparaître. 

(J'ai vérifié cela avec Eclipse Mars)

25
Yuci

J'ai le même problème. Après avoir étudié et googlé, j'ai résolu mon problème:

Faites un clic droit sur le dossier du projet, allez à Java EE Tools, sélectionnez Generate Deployment Descriptor Stub. Ceci créera web.xml dans le dossier src/main/webapp/WEB-INF.

16
Tung

Vous pouvez également faire cela qui est moins verbeux 

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

Si vous utilisez Spring Tool Suite, l'option de génération de stub de descripteur de déploiement est déplacée sous les outils Java EE. Vous devez donc:

  1. Faites un clic droit sur votre projet
  2. Sélectionnez Outils Java EE
  3. Sélectionnez l'option Générer un stub de descripteur de déploiement

Cela créera un fichier web.xml dans le dossier src/main/webapp/WEB-INF /, et supprimera bien sûr l’erreur du fichier pom.xml de Maven.

 enter image description here

14
milan.latinovic

Eclipse reconnaît le répertoire par défaut incorrect webapp . Nous devons donc le définir clairement par maven-war-plugin.

<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>

Une fois que vous avez enregistré ce paramètre, l’erreur ne se produira jamais si elle est supprimée .

7
yukihane

J'ai eu le même problème, même si j'avais le dossier 'src/main/webapp/WEB-INF/' avec web.xml correct.

Le problème a disparu après avoir recréé la configuration (maven-> Eclipse) avec Maven build.. J'ai exécuté mvn Eclipse:clean Eclipse:eclipse

Et puis j'ai utilisé Maven -> Update Project pour ajouter des options spécifiques au plugin (Eclipse-> maven).

3
Boris Treukhov

J'ai rencontré ce problème dans Eclipse uniquement, tout fonctionnait correctement en ligne de commande Maven et mon fichier web.xml existait. C'est un projet mature (déjà déployé en production) qui a été impacté. Mon problème était lié aux métadonnées Eclipse. Il y avait un problème avec l'un des fichiers de mon dossier .settings /, en particulier org.Eclipse.wst.common.component avait été modifié. J'ai pu restaurer ce fichier dans sa version précédente, ce qui a résolu le problème dans mon cas.

Notez que la réponse de Yuci n'a pas fonctionné pour moi. Lorsque j'ai essayé de cliquer sur l'assemblage de déploiement dans les propriétés Eclipse, j'ai reçu une erreur indiquant que "la page actuellement affichée contient des valeurs incorrectes".

Pour un projet avec web.xml présent Projet -> Propriétés -> Assemblage de déploiement, où vous pouvez ajouter un dossier src/main/webapp . Enregistrer les modifications . Nettoyer le projet Aller.

Pour un projet avec web.xml non présent Définissez failOnMissingWebXml sur false dans pom.xml sous la balise properties.

1
Saurav

Faire ceci:

Cliquez avec le bouton droit sur le descripteur de déploiement, puis sur Générer un stub de descripteur de déploiement.

1
Nuno Marques

Sélectionnez votre projet .__ et sélectionnez l'option "Descripteur de déploiement" Puis choisissez "Générer un stub de descripteur de déploiement".

0
Christina Vimala

Faites un clic droit sur le projet, allez à Maven -> Mettre à jour le projet ..., puis cochez la case Forcer la mise à jour des instantanés/communiqués, puis cliquez sur Ok. C'est fait!

0
João V.

Supprimer les fichiers de -web/.setting & - admin/.setting

1

0
jun gao

Créez le dossier WEB-INF dans src/webapp et incluez la page web.xml dans le dossier WEB-INF, puis 

0

L'étape de: Sélectionnez votre projet et sélectionnez l'option "Descripteur de déploiement", puis choisissez "Générer un stub de descripteur de déploiement", qui fonctionne correctement. Le problème est que nous n’avons pas toujours besoin de web.xml. Il est donc préférable d’ajouter false à pom.xml.

0
Lotchi Dagbo

Créer un fichier web.xml n'a pas de sens. Elcipse le veut, même s'il n'en a pas besoin. C’est le cas si vous avez un conletin de servlet intégré ou vivez sans cfg xml, comme le fait Spring-Boot.

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