Dynamic Web Module 3.0 – 3.1

J’ai une application Web Spring 3.2.4 configurée en code basée sur le code. Lorsque j’ai créé l’application avec Maven / pom.xml, j’ai tout d’abord reçu une erreur indiquant que web.xml était manquant. J’ai d’abord essayé de créer un web.xml vide. C’était le moment où les facettes du projet ont changé (et je ne sais pas pourquoi). Il est passé du module Web dynamic 3.0 au 3.1 et ceci est irréversible. Comment puis-je le changer à nouveau dans Dynamic Web Modules 3.0 ???

entrer la description de l'image ici

De plus, je ne peux pas retirer le JAX-RS. En essayant cela, il en résulte:

Failed while uninstalling JAX-RS (REST Web Services) 1.0. org.eclipse.jst.javaee.web.internal.impl.WebAppImpl cannot be cast to org.eclipse.jst.j2ee.webapplication.WebApp 

Plus tard, j’ai découvert que je pouvais éviter l’erreur de compilation de Maven en insérant le plug-in correspondant dans pom.xml:

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

J’ai eu des problèmes similaires en éclipse et la seule façon de le réparer était de

  • Supprimer le module Web
  • Appliquer
  • Changer la version du module
  • Ajouter le module
  • Configurer (lien de configuration supplémentaire disponible en bas de la boîte de dialog)
  • Appliquer

Assurez-vous simplement de configurer le module Web avant de l’appliquer, car, par défaut, il recherchera vos fichiers Web dans / WebContent / et ce n’est pas ce que devrait être la structure du projet Maven.

EDIT :

Voici un deuxième moyen au cas où rien d’autre n’aide

  • Quittez eclipse, accédez à votre projet dans le système de fichiers, puis au dossier .settings.
  • Ouvrez le org.eclipse.wst.common.project.facet.core.xml , effectuez une sauvegarde et supprimez l’entrée du module Web.
  • Vous pouvez également modifier la version du module Web, mais là encore, aucune garantie.

Si vous souhaitez utiliser la version 3.1, vous devez utiliser le schéma suivant:

  • http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd

Notez que 3.0 et 3.1 sont différents: en 3.1, il n’y a pas de mention de Sun, donc simplement changer 3_0.xsd en 3_1.xsd ne fonctionnera pas.

Voici comment cela devrait ressembler:

    

Assurez-vous également que vous pom.xml des dernières versions de votre pom.xml . C’est,

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

et

  javax.servlet javax.servlet-api 3.1.0 provided  

Enfin, vous devriez comstackr avec Java 7 ou 8:

  org.apache.maven.plugins maven-comstackr-plugin 3.3  1.7 1.7   

J’ai eu le même problème et j’ai corrigé cela en éditant org.eclipse.wst.common.project.facet.core.xml.

Dans ce fichier, j’ai pu modifier la ligne suivante

  

retour à

  

Cela semblait régler le problème pour moi.

Je courais sous Win7, Tomcat7 avec l’installation de maven-pom sur Eclipse Mars avec le projet maven activé. Sur un serveur en cours d’exécution, je devais seulement changer de 3.1 à 3.0 sur cet écran: entrer la description de l'image ici

Pour moi, il était important de désactiver Dynamic Web Module! Modifiez ensuite la version, puis activez à nouveau Dynamic Web Module.

Ouvrir les propriétés du projet Eclipse, dans les facettes de projet, désélectionnez “Dynamic Web Module”, … Cliquez sur OK Maven -> Mettre à jour le projet

Dans un cas spécifique, le problème est dû à la maven-archetype-webapp qui est publiée pour une application Web dynamic, à facettes vers la version 2.5 (voir le fichier web.xml produit et le fichier xsd associé) et est liée à eclipse. Lorsque vous essayez de changer la facette du projet en application Web dynamic> 2.5, la structure du dossier src changera de manière syntaxique (le 2.5 est différent de 3.1), mais pas de manière statique.

C’est pourquoi vous ferez face à une exception de pointeur nul si vous appliquez aux modifications.

Pour le résoudre, vous devez définir à partir de la configuration des facettes du projet la configuration par défaut. Appliquez les modifications, puis dans le chemin de génération Java, vous devez supprimer le dossier / src et créer au moins le dossier / src / main / java (il faut également / src / main / resources et / src / test / java conforme) changer de nouveau dans la configuration souhaitée (3.0, 3.1) et appliquer ensuite.

J’ai ouvert le projet org.eclipse.wst.common.project.facet.core.xml et tout d’abord changé, puis supprimé la ligne avec le tag du module web. Projet nettoyé et lancé sur Tomcat à chaque fois mais il ne fonctionnait toujours pas. Ligne renvoyée (telle quelle) et projet nettoyé. Ouverture des parameters Tomcat dans Eclipse et ajout manuel du projet au démarrage de Tomcat (clic droit + Ajouter et supprimer). Cliqué sur le projet et sélectionné Exécuter sur le serveur …. et tout allait bien.

1) Allez dans votre projet et trouvez le répertoire “.settings” celui-ci
2) Ouvrez le fichier xml nommé:
org.eclipse.wst.common.project.facet.core.xml
3)

        

Changez la version de jst.web en 3.0 et la version de Java en 1.7 ou 1.8 (basée sur votre version actuelle utilisant jdk)

4) Modifiez votre fichier web.xml sous le WEB-INF , reportez-vous à cet article:
https://www.mkyong.com/web-development/the-web-xml-deployment-descriptor-examples/
5) Allez dans le fichier pom.xml et collez ces lignes:

  YOUR_PROJECT_NAME   org.apache.maven.plugins maven-comstackr-plugin 3.3  1.8 THIS IS YOUR USING JDK's VERSION 1.8 SAME AS ABOVE