Considérer:
Lorsque je crée simple Maven projet dans Eclipse Je reçois cette erreur:
web.xml est manquant et
<failOnMissingWebXml>
est défini sur true
Comment puis-je résoudre ce problème?
la source
Vous pouvez le faire aussi comme ceci:
Il générera un dossier WEB-INF dans src / main / webapp et un web.xml dedans.
web.xml
fichier inutile . Vous devriez résoudre ce problème dans votre outil de construction (c'est-à-dire maven) à la place.
Ceci 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 cette convention. Ajoutez ceci à votre maven pom.xml
pour laisser maven rattraper son retard et vous n'avez pas besoin d'ajouter un inutile web.xml
à 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 vide web.xml
car de cette façon votre produit final reste propre, vous ne faites que changer 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>
Interface WebApplicationInitializer
cette réponse est l'approche correcte. C'est la manière sensée de résoudre ce problème - inutile d'ajouter web.xml
après avoir pris des mesures pour vivre sans lui!
<properties><failOnMissingWebXml>false</failOnMissingWebXml></properties>
suffit au lieu des paramètres de configuration du plugin plus détaillés.
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 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:
(J'ai vérifié cela avec Eclipse Mars)
Si vous utilisez Spring Tool Suite, l'option Generate Deployment Descriptor Stub est déplacée sous Java EE Tools, de sorte que vous:
Cela créera un fichier web.xml dans le dossier src / main / webapp / WEB-INF /, et bien sûr supprimera l'erreur du fichier pom.xml de Maven.
J'ai le même problème. Après avoir étudié et cherché sur Google, j'ai résolu mon problème:
Faites un clic droit sur le dossier du projet, allez dans Java EE Tools
, sélectionnez Generate Deployment Descriptor Stub
. Cela créera web.xml
dans le dossier src/main/webapp/WEB-INF
.
Vous pouvez également faire ceci qui est moins verbeux
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Eclipse reconnaît un webapp
répertoire par défaut incorrect . Par conséquent, nous devons le définir clairement 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 ce paramètre enregistré, l'erreur ne se produira jamais si elle est supprimée. (Je ne peux pas expliquer pourquoi.)
J'ai eu le même problème, même si j'avais un 'src/main/webapp/WEB-INF/'
dossier correct web.xml
.
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'avais l'habitude Maven -> Update Project
d'ajouter 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'est un projet mature (déjà déployé en production) qui a é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 antérieure, 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 eu une erreur qui disait "la page actuellement affichée contient des valeurs non valides."
Pour Project avec web.xml, présentez Project -> Properties -> Deployment Assembly, où vous pouvez ajouter le dossier src / main / webapp. Sauvegarder les modifications. Nettoyez le projet pour commencer.
Pour le projet avec web.xml non présent Définissez failOnMissingWebXml sur false dans pom.xml sous la balise properties.
Faites ceci:
Allez et faites un clic droit sur Deployment Descriptor et cliquez sur Generate Deployment Descriptor Stub.
Cela n'a aucun sens de créer un fichier web.xml juste elcipse le veut, même si cela n'est pas nécessaire. C'est le cas si vous avez un conatiner de servlet intégré ou vivant sans cfg xml comme le fait spring-boot. Le vous venez de diable JavaEE (trucs inutiles) dans eclipse au niveau du projet ou global
Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK
Sélectionnez votre projet et sélectionnez l'option "Deployment Descriptor" puis choisissez "Generate Deployment Descriptor stub"
L'étape de: Sélectionnez votre projet et sélectionnez l'option "Deployment Descriptor", puis choisissez "Generate Deployment Descriptor stub" 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
Faites un clic droit sur le project --> New --> Other --> Standard Deployment Descriptor(web.xml)
puis appuyez sur Suivant, il créera un WEB-INF
dossier avec un web.xml
fichier à l'intérieur.
C'est fait.
Créez le dossier WEB-INF dans src / webapp, et incluez la page web.xml dans le dossier WEB-INF puis
Supprimer les fichiers de -web / .setting & -admin / .setting
Faites un clic droit sur le projet, allez dans Maven -> Mettre à jour le projet ... , puis vérifiez la mise à jour forcée des instantanés / versions , puis cliquez sur OK . C'est fait!
maven-war-plugin
. Il s'agit d'un plugin implicite où la valeur par défaut de cette propriété de configuration est true. Vous devez le déclarer explicitement et définir la propriété de configuration sur false. En savoir plus ici . Ou vous pouvez ajouter un web.xml vide