web-dev-qa-db-fra.com

JavaServer Faces 2.2 nécessite Dynamic Web Module 2.5 ou plus récent

J'ai essayé peu de choses, mais le problème persiste. J'utilise Eclipse Kepler. J'ai l'erreur suivante lors de l'importation du projet maven

Impossible d'installer JavaServer Faces 2.2: une ou plusieurs contraintes n'ont pas été satisfaites

JavaServer Faces 2.2 nécessite Dynamic Web Module 2.5 ou plus récent

1) J'ai essayé peu de choses comme indiqué dans Marqueur de configuration Maven Java EE avec Java Server Faces 1.2 , mais pas de chance . 2) De plus, je suis allé dans. .facet.core.xml et jst.web modifié pour pointer vers la version 2.5 ou 3.0; mais je reçois d'autres erreurs.

J'essaie de faire fonctionner les exemples Sencha GXT dans maven/Eclipse construit sur http://neiliscoding.blogspot.ie/2012/05/how-to-setup-examples-for-use-in-gxt-3. html et avoir ce javaserver fait face à problème dans Eclipse. Voici mon pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.Apache.org/POM/4.0.0"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/maven-v4_0_0.xsd">

<!-- POM file generated with GWT webAppCreator -->
<modelVersion>4.0.0</modelVersion>
<parent>
    <artifactId>xx</artifactId>
    <groupId>ss</groupId>
    <version>0.0.1-SNAPSHOT</version>
</parent>

<artifactId>guis</artifactId>
<packaging>war</packaging>

<name>GWT Maven Archetype</name>

<properties>
    <!-- Convenience property to set the GWT version -->
    <gwtVersion>2.5.1</gwtVersion>
    <!-- GWT needs at least Java 1.5 -->
    <webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>com.google.gwt.inject</groupId>
        <artifactId>gin</artifactId>
        <version>2.1.2</version>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>7.0</version>
    </dependency>

    <dependency>
        <groupId>com.google.gwt</groupId>
        <artifactId>gwt-servlet</artifactId>
        <version>${gwtVersion}</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>com.google.gwt</groupId>
        <artifactId>gwt-user</artifactId>
        <version>${gwtVersion}</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>com.google.gwt</groupId>
        <artifactId>gwt-dev</artifactId>
        <version>${gwtVersion}</version>
        <scope>provided</scope>
    </dependency>


    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.7</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.0.0.GA</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.0.0.GA</version>
        <classifier>sources</classifier>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.sencha.gxt</groupId>
        <artifactId>gxt-chart</artifactId>
        <version>3.0.1</version>
    </dependency>

    <dependency>
        <groupId>com.sencha.gxt</groupId>
        <artifactId>gxt</artifactId>
        <version>3.0.1</version>
    </dependency>

    <dependency>
        <groupId>com.sencha.gxt</groupId>
        <artifactId>uibinder-bridge</artifactId>
        <version>2.4.0</version>
    </dependency>



</dependencies>

<build>
    <!-- Generate compiled stuff in the folder used for developing mode -->
    <outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory>

    <plugins>

        <!-- GWT Maven Plugin -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>gwt-maven-plugin</artifactId>
            <version>2.5.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>test</goal>
                        <!-- <goal>i18n</goal> -->
                        <goal>generateAsync</goal>
                    </goals>
                </execution>
            </executions>
            <!-- Plugin configuration. There are many available options, see gwt-maven-plugin 
                documentation at codehaus.org -->
            <configuration>
                <runTarget>guis.html</runTarget>
                <hostedWebapp>${webappDirectory}</hostedWebapp>
                <i18nMessagesBundle>com.harmonia.client.Messages</i18nMessagesBundle>
            </configuration>
        </plugin>

        <!-- Copy static web files before executing gwt:run -->
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <!-- <goals> <goal>exploded</goal> </goals> -->
                </execution>
            </executions>
            <configuration>
                <webappDirectory>${webappDirectory}</webappDirectory>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

Voici mon fichier web.xml 

 <?xml version="1.0" encoding="UTF-8"?>
  <!-- <!DOCTYPE web-app
 PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://Java.Sun.com/dtd/web-app_2_3.dtd">

<web-app> -->

<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>GXT Created Web Application</display-name>



<!-- Default page to serve -->
<welcome-file-list>
    <welcome-file>guis.html</welcome-file>
</welcome-file-list>

Comme vous pouvez le constater, j’ai essayé différents dtd dans le fichier web.xml ci-dessus, mais le problème persiste. J'apprécierais des allusions

18
kashili kashili

Votre problème est que vous avez marqué votre web.xml comme étant conforme à la servlet 2.3 (ou peut-être même pas - je ne suis pas sûr de savoir comment votre doctype dans un commentaire est interprété)

 <?xml version="1.0" encoding="UTF-8"?>
  <!-- <!DOCTYPE web-app
 PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://Java.Sun.com/dtd/web-app_2_3.dtd">

et vous en avez besoin pour être au moins conforme à Servlet 2.5 pour que l'outillage Eclipse fonctionne.

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.xsd">

(non testé - copié de http://javahowto.blogspot.dk/2009/10/sample-webxml-servlet-25.html )

Vous devrez peut-être recréer le projet Eclipse pour que les modifications soient prises en compte.

19

J'ai aussi rencontré cela avec les projets Maven. Voici ce que je devais faire pour résoudre le problème:

Commencez par mettre à jour votre fichier web.xml comme indiqué par Thorbjørn Ravn Andersen. J'ai utilisé la version 3.0 comme ci-dessous:

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

Cliquez ensuite avec le bouton droit de la souris sur votre projet et sélectionnez Propriétés -> Facettes du projetVous y verrez la version de votre module Web dynamique. Cela doit changer de la version 2.3 ou autre à la version 2.5 ou supérieure (j'ai choisi 3.0).

Cependant, pour ce faire, je devais décocher la case à cocher pour Dynamic Web Module -> Appliquer, puis effectuer une mise à jour Maven sur le projet. Retournez dans la fenêtre Facettes du projet et cela devrait déjà correspondre à votre configuration web.xml - 3.0 dans mon cas. Vous devriez pouvoir le changer sinon.

Si cela ne fonctionne pas, essayez de cliquer avec le bouton droit de la souris sur la facette du module Web dynamique et de sélectionner la version modifiée (et de s’assurer qu’elle n’est pas verrouillée).

J'espère que ça marche!

25
raghera

J'ai eu le même problème et dans mon web.xml avait la version 2.5 alors que le projet avait le (clic droit sur Projet-> Propriétés-> Progect Facets->) 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 l'en-tête Module Web dynamique, je l'ai enregistré et j'avais Update Project. Réveiller automatiquement, c'est entrer dans la boîte avec la version correcte. 

2
Piyush Mittal

La solution que j'ai trouvée pour ce problème est 

1) Cliquez avec le bouton droit sur Projet> Propriétés> Désélectionnez Dynamic Web Module> Appliquer et fermer.

2) Cliquez avec le bouton droit sur Projet> Maven> Mettre à jour le projet ... 

2
user5698605

Ma propre solution consistait à placer la dépendance rignt dans le fichier pom.xml.

Si le projet est déclaré en tant que projet Web dynamique 3.1 dans les facettes, la dépendance Java.servlet-api doit également être la version 3.1.0 (ou 3.1.x). 

Dans mon cas, j'avais quitté la version 3.0.1, induisant ainsi ce message d'erreur spécifique dans la vue "Problèmes":

Impossible de modifier la version de la facette du projet Dynamic Web Module en 3.0 . Une ou plusieurs contraintes n'ont pas été satisfaites.

(bien sûr, assurez-vous en outre que votre fichier web.xml doit également être le fichier 3.1).

1
LAURENT CHRETIEN

Mon projet était confronté au même problème. J'ai changé le web.xml comme suit:

<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>Archetype Created Web Application</display-name>

L'erreur a persisté. Mais après avoir suivi les suggestions faites dans le lien suivant, le problème a été résolu. 

http://crunchify.com/how-to-fix-cannot-changer-version-of-project-facet-dynamic-web-module-to-3-0-error-in-Eclipse/

1

Essayez ceci: Supprimez votre projet dans Eclipse. Supprimez le projet Eclipse, pas votre application! Il devrait disparaître de la liste des projets . Dans l'Explorateur Windows, localisez votre répertoire de projet et supprimez les répertoires .settings et target (le cas échéant), puis supprimez les fichiers .project et .classpath . Projet Maven. C'est tout!

En supposant que votre fichier web.xml ait le bon en-tête <web-app> pour votre version JSF cible.

1
JoseA

** Ouvrez le fichier pom.xml de votre projet et ajoutez cette balise de plug-in Enfin, cliquez avec le bouton droit de la souris sur votre projet> Maven> Mettre à jour le projet…

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

**

0
John

J'ai rencontré ce problème et la réponse de Thorbjørn Ravn Andersen n'a pas aidé, car j'étais déjà à Dynamic Web Module 2.5. J'avais rencontré le même problème des années auparavant et j'avais abandonné. Décider de réexaminer ce que j’ai fait en premier lieu, c’est essayer de supprimer le support de "Dynamic Web Module" en le décochant - mais bon, c’est verrouillé? Alors je l'ai débloqué et désactivé/décoché. J'ai ensuite débloqué JavaServer Faces, décoché lui aussi, cliqué sur appliquer - aucune explosion! Avec les doigts croisés, j'ai ensuite revérifié le module Web dynamique et l'a mis à 3.1. J'ai ensuite revérifié JavaServer Faces en le réglant sur 2.2. Cliquez sur appliquer - pas de "big badda boom", cela a fonctionné - profit! J'espère que cela aidera tout le monde avec le même problème, cela ne dépend pas non plus du réglage des fichiers XML.

Remarque: j’ai également défini la version 1.8 à facettes Java ainsi qu’elle était requise.

0
JGlass