web-dev-qa-db-fra.com

Impossible de changer la version de la facette du projet Dynamic Web Module en 3.0?

J'utilise maven pour créer une application Web dynamique dans Eclipse. J'ai ajouté des dossiers comme src/test/Java et src/test/resources. De plus, j'ai changé la bibliothèque dans le chemin de construction Java pour obtenir JavaSE-1.7. Tout va bien jusqu'à ici.

Lorsque j'ai essayé de modifier le module Web dynamique de la facette des projets, quelque chose s'est mal passé. J'ai eu changer le Java à 1.7 au même endroit. Et il m’a toujours dit, ne peut pas changer la version de la facette du projet Dynamic Web Module en 3.0.

Je pense que tout a changé.

305
EdgarZeng

J'ai mis à jour mon web.xml

<web-app xmlns="http://Java.Sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee 
          http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <display-name>Servlet 3.0 Web Application</display-name>
</web-app>

et puis juste Maven -> Update Project ...

299
Sydney

Une autre méthode consiste à éditer le fichier de configuration de facette du projet lui-même: org.Eclipse.wst.common.project.facet.core.xml

Modifiez la version du module Web dynamique sur cette ligne en 3.0 - <installed facet="jst.web" version="2.5"/>

Et alors:

  1. Cliquez avec le bouton droit sur le projet (dans le panneau Explorateur de projet ).
  2. Sélectionnez Maven "Mettre à jour le projet (ou appuyez sur Alt+F5)

Vous trouverez ce fichier dans le répertoire .settings du projet Eclipse.

561
enkor

Je pense avoir le même problème que toi. Mon web.xml avait la version 2.5 alors que le projet avait le (clic droit sur Projet-> Propriétés-> Facettes du projet->) Dynamic Web Module 2.3.

Bien que j'aie essayé de changer la version de 2.3 à 2.5, Eclipse ne le permettait pas. Solution: J'ai enlevé la coche sous le titre Module Web dynamique, j’ai enregistré et j’ai mis à jour le projet. Réveiller automatiquement, c'est entrer dans la boîte avec la version correcte. J'utilise Eclipse Kepler. 

p.s .: regardez les commentaires de Jonathan juste en dessous, très utiles. 

159
pagurix

J'ai eu le même problème et j'ai même essayé de supprimer le projet et de l'ajouter à nouveau. L'astuce consistait à supprimer le répertoire .settings.

40
Adrian Ber
  1. Cliquez sur votre dossier de projet.
  2. Choisissez Fenêtre> Afficher la vue> Navigateur
  3. Allez dans le navigateur et développez le dossier .settings
  4. Ouvrir le fichier org.Eclipse.wst.common.project.facet.core.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <faceted-project>
      <fixed facet="wst.jsdt.web"/>
      <installed facet="jst.web" version="2.3"/>
      <installed facet="wst.jsdt.web" version="1.0"/>
      <installed facet="Java" version="1.8"/>
    </faceted-project>
    
  5. Changer la version comme ceci <installed facet="jst.web" version="3.1"/>

  6. Sauvegarder
  7. Il suffit de mettre à jour votre projet. Cliquez avec le bouton droit sur Dossier de projet> Maven> Mettre à jour le projet> Sélectionnez le projet et cliquez sur 'OK'

Juste cela a fonctionné pour moi.

34
aabarbosa

Effacer 

.settings 
.classpatch 
.projejct 
target

et réimportez le projet maven.

21
Pintér Tamás

Ce qui a fonctionné pour moi:

  1. Change le Java en 1.8 (ou 1.7)

Dans votre POM, vous devez définir le plug-in du compilateur sur la version 1.8 (ou 1.7) de la section <build>:

  <build>
    ...
      <plugins>
        <plugin>
          <groupId>org.Apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.6.0</version>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
          </configuration>
        </plugin>  
      </plugins>    
  </build>

Assurez-vous que le changement Java Build montre 1.8. Si ce n'est pas le cas, cliquez sur EDIT et sélectionnez ce que cela devrait être.

 enter image description here

  1. Modify web.xml afin que 3.0 soit référencé dans la version et dans le lien

 enter image description here

  1. Assurez-vous que Java est défini sur 1.8 dans les facettes du projet

 enter image description here

  1. A ce stade, je ne pouvais toujours pas changer le module Web dynamique; 

Au lieu de le changer:

a) décochez le module Web dynamique

b) appliquer

c) vérifiez à nouveau. La nouvelle version 3.0 devrait être définie. **

 enter image description here

Après avoir appliqué et vérifié à nouveau:

 enter image description here

J'espère que cela t'aides.

19
Witold Kaczurba

Cliquez avec le bouton droit de la souris sur projet Propriétés ; dans Facettes du projet , désélectionnez Module Web dynamique (la version doit être 3.1 ) et désélectionnez JavaServer Faces (version est 2.2 ).

Change ça:

<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">

pour ça:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://Java.Sun.com/xml/ns/javaee" xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

Supprimez ensuite le préfixe avant param-name et ainsi de suite.

Enfin, Maven -> Projet de mise à jour .

15
henry ren

vous ouvrez s'il vous plaît la vue Navigateur et l'étape suivante

  1. (Fenêtre> Afficher la vue> Autre> Général) et trouvez qu’il existe un dossier .settings dans votre projet, développez-le puis ouvrez le fichier "org.Eclipse.wst.common.project.facet.core.xml", faites le modifications ci-dessous et enregistrez le fichier. 
  2. Changez la version du module Web dynamique dans cette ligne en 2.5 - 
  3. Changez la version de Java dans cette ligne à 1.5 ou plus -. 
8
GAURAV KUMAR GUPTA

Ouvrez le fichier web.xml à partir de la structure du projet Http: //Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd " Version =" 3.0 "> Application Web Servlet 3.0

et mettez à jour le fichier web.xml , par exemple change version = "2.5"

Modifiez également le fichier org.Eclipse.wst.common.project.facet.core.xml à partir du fichier .settings de votre projet Suivez les étapes 1. Fenêtre> Afficher la vue> Autre> Général> Navigateur

  1. Il y a un dossier .settings dans votre répertoire de projet

  2. Définissez la version du module Web dynamique de cette ligne sur la version 2.5 4. Modifiez la version de Java de cette ligne sur la version 1.5 ou supérieure. 

Maintenant, actualisez votre projet et soyez prêt à fonctionner sur votre serveur. 

Suivez le blog pour trouver la solution http://scrapillars.blogspot.in/2014/02/how-to-change-project-facet-in-Eclipse.html

La solution est produite avec des illustrations d'image

6
Siddaram

La meilleure et la plus simple des étapes qui résolvent ce problème est la suivante: 1) Propriétés -> Facettes du projet -> Désélectionnez/décochez la case de Module Web dynamique -> Appliquer 2) Passez maintenant à la version souhaitée. Appliquez 3) Cochez la case Module Web dynamique case à cocher ..-- Vous êtes maintenant terminé -

6
sunny

C'est un moyen de plus de résoudre ce problème (vérifiez-le en espérant que cela vous aidera à résoudre votre problème)

PROBL&EGRAVE;ME

Impossible de changer la version du module Web dynamique de facette de projet 2.3 à 3.0

SOLUTION 

  1. Accédez à l'emplacement de votre projet (ex-D:/maven/todo)
  2. aller au dossier .setting
  3. recherchez ce fichier: org.Eclipse.wst.common.project.facet.core.xml
  4. ouvrez le fichier et changez la propriété "jst.web" de 2.3 à 3.0, puis enregistrez
  5. Faites un clic droit sur le projet, actualisez le projet et mettez à jour le maven 
  6. Terminé!!!....
4
chhaya Joshi

J'ai eu le même problème, éditer web.xml ainsi que changer le fichier dans le dossier .settings ne m'a pas aidé. Ma solution consistait à indiquer directement au plug-in maven compiler d'utiliser la version Java souhaitée en modifiant le fichier pom.xml:

  <build>
    ...
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>    
  </build> 

Exécutez maintenant Maven-> Mettre à jour le projet, puis modifiez la version des servlets dans propriétés-> facettes du projet-> version du module Web dynamique ou, comme indiqué précédemment, en modifiant manuellement org.Eclipse.wst.common.project.facet.core. XML dans le dossier .settings de votre projet.

3
troy

L'astuce web.xml fonctionne car vous indiquez maintenant explicitement à WTP que vous utilisez cette version de servlet spécifique, quel que soit le support pris en charge par le conteneur. 

Dans mon cas, j'utilise la configuration d'annotation dans un projet Maven et je n'ai pas de fichier web.xml. Il s'avère qu'en l'absence d'un fichier web.xml, WTP examine vos dépendances Maven pour déterminer la version de Servlet à utiliser. Dans mon cas, j'avais défini ce qui suit:

<dependency>
  <groupId>javax</groupId>
  <artifactId>javaee-api</artifactId>
  <version>7.0</version>
  <scope>provided</scope>
</dependency>

Le passage à 6.0 corrigeait le problème. Il utilisait maintenant Servlet 3.0 au lieu de 3.1, qui est la valeur par défaut pour JavaEE 7. Comme je devais passer de Tomcat 8 à Tomcat 7, Tomcat 7 ne prend en charge que le profil Web JavaEE 6. Maintenant, les choses fonctionnent à merveille.

2
Ryan J. McDonough

J'ai eu le même problème, la suppression du dossier .settings a résolu le problème

2
Nagababu

Dans mon cas, le fichier web.xml était référencé par un dtd. Après avoir changé cela en référence xsd comme celle publiée par Sydney, cela a fonctionné.

2
keiki

Si la réponse de Sydney ne vous aide toujours pas, essayez ci-dessous . Après avoir suivi la réponse de Sydney, accédez à Propriétés> Projets, désélectionnez Dynamic Web Module, puis modifiez la version en fonction de votre web.config, puis sélectionnez à nouveau. Appliquer> Enregistrer Puis Maven Update.

web.xml

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:web="http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="Web_App_1" version="3.1">

<display-name>JavaServerFaces</display-name>

<!-- Change to "Production" when you are ready to deploy -->
<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>

<!-- Welcome page -->
<welcome-file-list>
    <welcome-file>jsfs/hello.xhtml</welcome-file>
</welcome-file-list>

<!-- JSF mapping -->
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<!-- Map these files with JSF -->
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>jsfs/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

1
punkck

Ma solution au problème qui ne me permettait pas de changer la version du module Web dynamique du projet facet dans Eclipse (Mars) était la suivante:

  • Désactiver Maven Nature
  • Assurez-vous que les espaces de noms web.xml pointent vers la bonne version
  • Réactiver Maven Nature
  • Maven »Mettre à jour le projet (ou appuyez sur Alt + F5)
1
Andrés S.

J'ai essayé beaucoup de réponses ici, mais aucune d’entre elles n’a fonctionné pour moi ……. Puis j’ai trouvé un article sur mon problème ici . J'ai pensé à le partager ici aussi.

Vous trouverez ci-dessous les étapes à suivre.

  1. Définir le niveau de conformité du compilateur.
  2. Mettre à jour la facette du projet
  3. Mettre à jour le JRE installé à partir des préférences 
  4. Ajout de la configuration dans pom.xml pour utiliser Java 1.7 et enfin
  5. projet de mise à jour de Maven.
1
Md Faisal

Pour un projet Web Eclipse maven, la modification de la version du module Web dynamique doit vérifier trois emplacements. Si vous utilisez Eclipse, et après avoir vérifié les éléments suivants: 1) web.xml 

<web-app xmlns="http://Java.Sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee 
          http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

2) maven: 

<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <scope>provided</scope>   ## ensure you have Tomcat 7 not other version
</dependency>

<plugin>
      <groupId>org.Apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.0</version>
      <configuration>
            <source>1.7</source> ## at least 6
            <target>1.7</target>
      </configuration>
</plugin>

3) Le chemin de compilation Eclipse et la version du compilateur est 1.7.

vous avez toujours un marqueur d'erreur chez maven:

cannot change version of project facet dynamic web module to 3.0 one or more constrants have not been satisfied

Vous pouvez ensuite: À propos du deuxième conseil Tomcat, quelle version est une bonne note.

1
Tiina

J'ai eu le même problème - je viens de retirer le projet de mon espace de travail, puis de nettoyer les "fichiers/dossiers Eclipse, par exemple: .project, .settings, etc.), puis de réimporter le projet maven, cela a fonctionné.

0
Thomás Preis

Ouvrez le fichier org.Eclipse.wst.common.project.facet.core.xml et remplacez la version jst.web par la version 3.0. Mettez également à jour le fichier web.xml vers la version 3.0. Enregistrez et mettez à jour le projet. J'espère que cela t'aides. J'utilise Eclipse Juno

0
Sheetal

Faire maven update ou réimporter le projet n'a pas aidé. @ La réponse de Sydney est juste; en outre, je dois recréer le projet dans un espace de travail différent, comme indiqué dans JavaServer Faces 2.2 nécessite Dynamic Web Module 2.5 ou plus récent

0
kashili kashili

Le mien était Web Module 3.0 dans web.xml, mais dans properties>Dynamic Web Module C'était le 3.1

J'ai changé le web.xml en ceci:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://Java.Sun.com/xml/ns/javaee" xmlns:web="http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

après ce changement, faites: right click on project>Maven>Update Project...

0
Amin Sh

J'ai eu le même symptôme avec un traitement différent. J'essayais de mettre à niveau mon application Web JSF 2.2.4/Spring 3.0 vers JSF 2.3 afin de profiter des nouveaux points d'ancrage JSF Websocket et qu'Eclipse (en réalité STS) ne coopérerait pas. JSF 2.3 n’était disponible que dans les facettes du projet d’Eclipse tant que je n’avais pas modifié directement le fichier org.Eclipse.wst.common.project.facet.core.xml comme indiqué dans les réponses précédentes - la valeur la plus élevée était de 2,2.

Voici les cerceaux par lesquels j'ai sauté. Je ne sais pas si tout cela était nécessaire parce que je ne comprends pas fondamentalement toute cette configuration. 

Dans Eclipse, je recevais souvent un avertissement effrayant: "La modification d'un projet à facettes lorsque aucune implémentation d'une implémentation installée n'est disponible peut potentiellement endommager un projet. Voulez-vous vraiment continuer?" Cela m'a incité à faire des commits plus fréquents mais aucune corruption ne s'est produite.

  1. Mettez à niveau le JDK de 1,7 à 1,8 dans POM, le compilateur Eclipse et les facettes du projet Eclipse.
  2. Mettez à jour les dépendances Maven suivantes:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.4</version>
        <scope>provided</scope>
    </dependency>
    

    ... à:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.0</version>
        <scope>provided</scope>
    </dependency>
    

... et ...

    <dependency>
        <groupId>com.Sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.2.4</version>
    </dependency>
    <dependency>
        <groupId>com.Sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.2.4</version>
    </dependency>

... à:

    <dependency>
        <groupId>javax.faces</groupId>
        <artifactId>javax.faces-api</artifactId>
        <version>2.3</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.faces</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <version>2.0</version>
    </dependency>

J'ai dû mettre à jour mes déclarations d'espace de noms web.xml à partir de:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://Java.Sun.com/xml/ns/javaee" xmlns:web="http://Java.Sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">

... à:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://Java.Sun.com/xml/ns/javaee" xmlns:web="http://Java.Sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

Je devais mettre à jour les facettes du projet -> Dynamic Web Module de 2.5 à 3.0. J'ai essayé 3.1 mais j'ai eu des erreurs. 

Au cours de cette procédure, le titre de l'article a été fréquemment marqué par l'erreur "Impossible de changer la version de la facette du projet Dynamic Web Module en version 3.0" et Eclipse a refusé de compiler le projet ou de proposer JSF 2.3 dans les facettes du projet. Lorsque j'ai modifié le fichier org.Eclipse.wst.common.project.facet.core.xml selon l'ordre indiqué, les erreurs ont disparu, Eclipse a proposé JSF 2.3 dans Project Facets, puis le projet a été compilé et exécuté correctement sur Tomcat 9.0.8. Toutefois, Project Facets avertissait toujours que "L'implémentation de la version 2.3 de la facette de projet jst.jsf était introuvable. Les fonctionnalités seront limitées." Je suppose que cela signifie simplement que la fonctionnalité de saisie semi-automatique et autres commodités Eclipse ne sera pas disponible car elle ne peut pas trouver la mise en œuvre JSF 2.3 déclarée dans mon POM.

J'espère que ça aide quelqu'un. Les recherches de Google n'ont rapporté que cet article de ALi Bassam et indirectement de BalusC qui a aidé.

0
snakedog

mise à jour maven a travaillé pour moi

sélectionnez projet puis appuyez sur ALT + F5 puis sélectionnez projet cliquez sur ok

0
Hari

J'ai eu cette erreur lorsque j'essaie de convertir un projet Java général en Maven Project .

Ce que j'ai fait était de déterminer la version du compilateur Java requise par mon projet. Pour mon projet, la version minimale de Java est 1.8.

En abaissant la version à une valeur inférieure à 1.8, mon IDE commencera à se plaindre de ne pas reconnaître un ensemble de bibliothèques importées. Par conséquent, je détermine la version minimale de Java en tant que 1.8

1. Right click your project
2. Go to Properties
3. Left hand-side panel, click "Project Facets"
4. For Java, set the version according to your minimum version

enter image description here

Maintenant, assurez-vous que la version du compilateur Java utilise la même version Java que celle que vous avez définie dans les facettes du projet.

1. Right click your project
2. Go to Porperties
3. Left hand-side panel, click "Java Compiler"
4. Make sure Java Compiler version is the same. 
5. If it is not the same, change the version. (Uncheck "Use compliance from execution environment' if needed to make the changes.

enter image description here

Après les modifications, l'erreur devrait être résolue. Si l'erreur persiste, cliquez avec le bouton droit sur projet -> Maven -> Mettre à jour le projet.

0
user3437460

Ceci est une variation de la réponse de pagurix, mais en utilisant Eclipse Mars. 

Changez votre fichier web.xml en web.bak 

Ignorer les erreurs, nous le régénérerons ensuite. 

Accédez aux propriétés du projet -> facettes du projet et définissez la version du module Web dynamique selon vos besoins. Eclipse vous permet maintenant de sauvegarder. 

Maintenant, faites un clic droit sur le projet. Choisissez Outils Java EE -> Générer un stub de descripteur de déploiement. 

Cela crée un nouveau web.xml avec la version requise. 

Ouvrez le nouveau web.xml et copiez l'en-tête XML et la balise d'ouverture complète de l'application Web sur votre web.bak d'origine, supprimez le nouveau web.xml et renommez web.bak en web.xml.

Terminé.

0
Adam

J'ai résolu le problème en modifiant web.xml avec la version correcte, les emplacements xsd et en modifiant org.Eclipse.wst.common.project.facet.core.xml avec la version correcte et en faisant mise à jour maven.

0
Vaibs

Ce problème avec la version, cliquez avec le bouton droit de la souris sur le projet-> Propriétés-> Facettes du projet-> cliquez avec le bouton droit de la souris sur Dynamic Web Module-> Déverrouillez-le-> Décochez-> Sélectionnez la version 2.5-> Appliquer-> Mettre à jour le maven

0
Ravi Kumar Ravanam