web.xml est manquant et est défini sur true

Considérer:

Entrez la description de l'image ici

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

web.xml est manquant et est défini sur true

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

Vous pouvez le faire aussi comme ceci:

  1. Cliquez avec le bouton droit sur Descripteur de déploiement dans l’ explorateur de projets .
  2. Sélectionnez Générer le descripteur de descripteur de déploiement .

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

entrer la description de l'image ici

Ceci est une erreur de maven. Il indique qu’il attend un fichier web.xml dans votre projet car il s’agit d’une application Web, comme indiqué par war . Cependant, pour les applications Web récentes, un fichier web.xml est totalement facultatif. Maven doit rattraper cette convention. Ajoutez ceci à votre pom.xml pour laisser maven le rattraper et vous n’avez pas besoin d’append un web.xml inutile à votre projet:

    org.apache.maven.plugins maven-war-plugin 2.6  false     

C’est une meilleure solution que d’append un web.xml vide car, de cette façon, votre produit final rest propre, vous ne faites que modifier vos parameters de construction.

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

  false  

Si vous avez déjà web.xml sous / src / main / webapp / WEB-INF mais que vous obtenez toujours l’erreur “web.xml est manquant et a la valeur true”, vous pouvez vérifier si vous avez inclus / src / main / webapp dans votre source de projet.

Voici les étapes à suivre:

  1. Vous pouvez le vérifier en cliquant avec le bouton droit de la souris sur votre projet et ouvrir sa boîte de dialog Propriétés, puis «Assemblage de déploiement», où vous pouvez append un dossier / src / main / webapp. Enregistrez le paramètre, puis
  2. Allez dans le menu Eclipse Projet -> Nettoyer … et nettoyez le projet, et l’erreur devrait disparaître.

(Je l’ai vérifié avec Eclipse Mars)

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

Cliquez avec le bouton droit sur le dossier du projet, accédez à Java EE Tools , sélectionnez Generate Deployment Descriptor Stub . Cela créera web.xml dans le dossier src/main/webapp/WEB-INF .

Si vous utilisez Spring Tool Suite, l’option pour Generate Deployment Descriptor Stub est déplacée sous Java EE Tools, ce qui vous permet de:

  1. Faites un clic droit sur votre projet
  2. Sélectionner les outils Java EE
  3. Sélectionnez l’ option Générer le descripteur 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 les erreurs du fichier pom.xml de Maven.

entrer la description de l'image ici

Vous pouvez aussi faire cela qui est moins verbeux

  false  

Eclipse reconnaît un répertoire webapp incorrect par défaut. Par conséquent, nous devrions le définir clairement par maven-war-plugin .

    org.apache.maven.plugins maven-war-plugin 3.0.0  src/main/webapp     

Une fois ce paramètre enregistré, l’erreur ne se produira jamais si vous la supprimez. (Je ne peux pas expliquer pourquoi.)

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

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

Et puis j’ai utilisé Maven -> Update Project pour append des options spécifiques au plugin (eclipse-> maven).

J’ai rencontré ce problème uniquement dans eclipse, tout fonctionnait bien dans la ligne de commande Maven et mon fichier web.xml existait. C’était un projet mature (déjà déployé en production) qui avait été impacté. Mon problème était lié aux métadonnées de l’éclipse. 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 à 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 Deployment Assembly dans les propriétés de l’éclipse, j’ai reçu une erreur indiquant que “la page actuellement affichée contient des valeurs non valides”.

Faites ceci:

Cliquez avec le bouton droit de la souris sur Descripteur de déploiement et cliquez sur Générer le descripteur de descripteur de déploiement.

Cela n’a pas de sens de créer un fichier web.xml juste si elcipse le veut, même si ce n’est pas nécessaire. C’est le cas si vous avez un conleteur de servlets incorporé ou vivant sans xml cfg comme le fait Spring-Boot. Le juste Javaable (trucs inutiles) dans eclipse au niveau du projet ou global

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

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

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

1

Pour Project with web.xml présente Project -> Properties -> Deployment Assembly, où vous pouvez append un dossier src / main / webapp. Sauvegarder les modifications. Nettoyez le projet pour y aller.

Pour Project with web.xml not present Définissez failOnMissingWebXml sur false dans pom.xml sous la balise properties.

Sélectionnez votre projet et sélectionnez l’option “Descriptor de déploiement”, puis choisissez “Générer le stub de descripteur de déploiement”.

Faites un clic droit sur le projet, allez à Maven -> Update Project … , puis cochez la case Mettre à jour les snapshots / versions , puis cliquez sur OK . C’est fait!

L’étape de: Sélectionnez votre projet et sélectionnez l’option “Descripteur de déploiement”, puis choisissez “Générer le descripteur de descripteur de déploiement” fonctionne correctement. Le problème est que nous n’avons pas toujours besoin de web.xml, il est donc préférable d’append false à pom.xml