web-dev-qa-db-fra.com

Marqueur de configuration Maven Java EE avec Java Server Faces 1.2

J'ai un problème de configuration étrange avec Maven dans Eclipse. Bien que je puisse construire le projet et le déployer sur Tomcat sans aucune erreur, l'onglet Marqueur continue d'afficher le message suivant:

[-] Maven Java EE Configuration Problem
(x) JavaServer Faces 1.2 can not be installed : One or more constraints have not been satisfied.
(x) JavaServer Faces 1.2 requires Dynamic Web Module 2.5 or newer.

J'utilise en fait Dynamic Web Module 2.4, qui serait la source du message. Je devrais changer au moins 2,5 pour travailler avec JSF. Le problème est que je n'utilise même pas JSF.

Donc, probablement l'une des dépendances du projet en a besoin. J'ai exécuté la commande suivante pour connaître l'arbre de dépendance de mon projet:

mvn dependency:tree -DoutputFile=<i>/path/to/outputFile/dependencies.txt</i>

et surprise! Pas de JSF 1.2 mentionné.

MODIFIER Oublié d'ajouter ma configuration PC:

OS: Ubuntu 12.10

Eclipse: 4.2 SR1

Java: jdk1.5.0_22 et jdk1.7

Apache Maven: 3.0.4

Maven home:/usr/share/maven

m2e: 1.3.1.20130219-1424

m2e-wtp: 0.17.0.20130212-1821

Aucun de mes collègues ont ce problème. Deux d'entre eux utilisent Windows, deux utilisent Ubuntu 12.10. L’un d’eux utilise Eclipse 4.2, d’autres utilisent Eclipse 3.7. Donc, apparemment, cela concerne soit 4.2SR1, soit la configuration de mon projet. Mais je ne trouve pas où est le problème.

Voici mon fichier pom.xml:

<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">
    <modelVersion>4.0.0</modelVersion>
    <groupId>edited</groupId>
    <artifactId>edited</artifactId>
    <packaging>war</packaging>
    <version>edited</version>
    <name>edited</name>
    <distributionManagement>
        <repository>
            <id>deployment</id>
            <name>Internal Releases</name>
            <url>http://edited/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>deployment</id>
            <name>Internal Releases</name>
            <url>http://edited/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
    <dependencies>
        <!-- Testes com Junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-all</artifactId>
            <version>1.3</version>
            <scope>test</scope>
        </dependency>
        <!-- Testes Funcionais com cucumber-jvm -->
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-spring</artifactId>
            <version>1.1.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>1.1.1</version>
            <scope>test</scope>
        </dependency>
        <!-- Mockito para criar mocks e stubs -->
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <version>1.9.5</version>
        </dependency>
        <!-- Fixture Factory Test Data Builder -->
        <dependency>
            <groupId>br.com.fixturefactory</groupId>
            <artifactId>fixture-factory</artifactId>
            <version>2.1.0-SNAPSHOT</version>
            <scope>test</scope>
        </dependency>
        <!-- Jasper Reports -->
        <dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports</artifactId>
            <version>4.5.1</version>
        </dependency>
        <!-- Struts 2 -->
        <dependency>
            <groupId>org.Apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.2.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.Apache.struts.xwork</groupId>
            <artifactId>xwork-core</artifactId>
            <version>2.2.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.Apache.struts</groupId>
            <artifactId>struts2-tiles-plugin</artifactId>
            <version>2.2.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.Apache.struts</groupId>
            <artifactId>struts2-json-plugin</artifactId>
            <version>2.2.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.Apache.struts</groupId>
            <artifactId>struts2-jasperreports-plugin</artifactId>
            <version>2.2.1.1</version>
        </dependency>
        <!-- Banco de dados Mysql + Hibernate + c3p0 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-Java</artifactId>
            <version>5.1.22</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>3.3.1.GA</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.4.0.GA</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-commons-annotations</artifactId>
            <version>3.1.0.GA</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.2.0.Final</version>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.0.0.GA</version>
        </dependency>
        <!-- <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> 
            <version>2.2.7</version> </dependency> <dependency> <groupId>com.Sun.xml.bind</groupId> 
            <artifactId>jaxb-impl</artifactId> <version>2.2.6</version> </dependency> -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-c3p0</artifactId>
            <version>3.6.10.Final</version>
        </dependency>
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
        </dependency>
        <dependency>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.3.GA</version>
        </dependency>
        <!-- Servlet API -->
        <dependency>
            <groupId>org.Apache.Tomcat</groupId>
            <artifactId>servlet-api</artifactId>
            <version>6.0.36</version>
        </dependency>
        <!-- Especificação do Java EE -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.5</version>
        </dependency>
        <dependency>
            <groupId>javaee</groupId>
            <artifactId>javaee-api</artifactId>
            <version>5</version>
            <scope>provided</scope>
        </dependency>
        <!-- Logging -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.2</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.2</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.2</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>1.7.2</version>
        </dependency>
        <!-- Apache Commons -->
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.1</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging-api</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.8.3</version>
        </dependency>
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.1</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.6</version>
        </dependency>
        <!-- Templating -->
        <dependency>
            <groupId>org.Apache.tiles</groupId>
            <artifactId>tiles-core</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.Apache.tiles</groupId>
            <artifactId>tiles-api</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.Apache.tiles</groupId>
            <artifactId>tiles-jsp</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.Apache.tiles</groupId>
            <artifactId>tiles-servlet</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.Apache.tiles</groupId>
            <artifactId>tiles-template</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.Apache.tiles</groupId>
            <artifactId>tiles-compat</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker-gae</artifactId>
            <version>2.3.19</version>
        </dependency>
        <!-- Quartz Scheduler -->
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>1.8.6</version>
        </dependency>
        <!-- Geração de Código -->
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib-nodep</artifactId>
            <version>2.2.2</version>
        </dependency>
        <!-- Xstream -->
        <dependency>
            <groupId>com.thoughtworks.xstream</groupId>
            <artifactId>xstream</artifactId>
            <version>1.4.3</version>
        </dependency>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>3.0.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>3.0.6.RELEASE</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>3.0.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>3.0.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.Apache.struts</groupId>
            <artifactId>struts2-spring-plugin</artifactId>
            <version>2.1.8</version>
        </dependency>
        <!-- RestEasy -->
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jaxrs</artifactId>
            <version>2.0.1.GA</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jaxb-provider</artifactId>
            <version>2.0.1.GA</version>
        </dependency>
        <!-- Xfire -->
        <dependency>
            <groupId>org.codehaus.xfire</groupId>
            <artifactId>xfire-all</artifactId>
            <version>1.2.6</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-mock</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- JQuery -->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>1.9.1</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>edited</finalName>
        <plugins>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <encoding>ISO-8859-1</encoding>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Comment puis-je résoudre ça?

26
Tarek

J'ai eu le même problème. Après avoir ajouté des dépendances de vélocité dans mon projet maven, la même erreur se produisait dans l'onglet marqueur Ensuite, j'ai remarqué que le fichier web.xml créé par le projet maven avait un schéma servlet2.3. Quand je l'ai changé en schéma Servlet 3.0 et enregistrer le projet, cette erreur a disparu. Voici le fichier web.xml créé par maven

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

Le changer en 

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

</web-app>

enregistrer le projet, et votre erreur aurait disparu.

41
Basit

Moi aussi j'ai eu le même problème.

La solution pour moi a été d’ajouter ce qui suit dans le pom.xml comme suggéré ici .

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>
17
Anil Bharadia

J'avais un problème similaire. Je travaillais sur un projet dans lequel je ne contrôlais pas le fichier de configuration web.xml, je ne pouvais donc pas utiliser les modifications suggérées pour modifier la version. Bien sûr, le projet n’utilisait pas JSF, c’était donc particulièrement agaçant pour moi. 

J'ai trouvé qu'il existe un correctiftrès simple. Allez dans Préférences> Maven> Java EE Itegration et décochez la case "JSF Configurator".

Je l'ai fait dans un nouvel espace de travail avant d'importer à nouveau le projet, mais cela peut également fonctionner également sur un projet existant ... pas sûr.

10
Mangusta

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

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

Cliquez ensuite avec le bouton droit de la souris sur votre projet et sélectionnez Propriétés -> Facettes de projet. Vous 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).

Ou vous pouvez suivre ces étapes:

  1. Fenêtre> Afficher la vue> Autre> Général> navigator
  2. Il y a un dossier .settings dans votre répertoire de projet
  3. Modifiez la version du module Web dynamique sur cette ligne en 3.0
  4. Changer la version de Java dans cette ligne à 1.5 ou plus 

n'oubliez pas de mettre à jour votre projet

J'espère que ça marche!

8
Fakher

Après avoir changé beaucoup de choses dans mon POM et mis à jour mon JDK, le message "Une ou plusieurs contraintes n'ont pas été satisfaites" associé à Google App Engine. La solution consistait à supprimer les paramètres du projet Eclipse et à le réimporter.

Sur OS X, je l’ai fait dans Terminal en changeant le répertoire du projet et

rm -rf .project
rm -rf .settings
4
BrianHenryIE

Vous devez vérifier les facettes de votre projet dans la configuration du projet. C'est ici que vous pouvez décocher la dépendance JSF.

enter image description here

2
Torsten

Le plug-in m2e génère la configuration de projet chaque fois que vous mettez à jour le projet (Maven-> Update Project ... Cette action annule le paramètre de facettes configuré manuellement dans Eclipse. Par conséquent, vous devez le configurer au niveau pom. En définissant les propriétés dans le fichier pom vous pouvez dire au plugin m2e quoi faire. 

Activer/désactiver les configurateurs JAX-RS/JPA/JSF au niveau pom.xml Les configurateurs optionnels JAX-RS, JPA et JSF peuvent être activés ou désactivés au niveau de l’espace de travail à partir de Fenêtre> Préférences> Maven> Intégration Java EE. . Maintenant, vous pouvez avoir un contrôle de grain plus fin sur ces configurateurs directement à partir de vos propriétés pom.xml:

L'ajout de false dans la section des propriétés de pom désactive le configurateur JAX-RS L'ajout de false dans la section des propriétés de pom désactive le configurateur JPA L'ajout de false dans la section des propriétés de pom désactive le configurateur JSF Les paramètres de pom remplacez toujours les préférences de l'espace de travail. Ainsi, si vous avez, par exemple, désactivé le configurateur JPA au niveau de l’espace de travail, l’utilisation de true l’activera de toute façon. ( http://wiki.Eclipse.org/M2E-WTP/New_and_Noteworthy/1.0.0 )

2
m2lit

Eclipse est un buggy sur l'écran des factes et parfois ne met pas à jour les fichiers de configuration dans l'espace de travail. On peut essayer deux options:

  1. Accédez au fichier org.Eclipse.wst.common.project.facet.core.xml situé dans le dossier .settings du projet Eclipse. Allez et supprimez manuellement l'entrée de la facette JSF. vous pouvez également mettre à jour d'autres facettes.

  2. Cliquez avec le bouton droit de la souris sur le projet et allez dans propriétés-> Maven -> Java EE Integeration. choisissez les options: activer les paramètres spécifiques au projet, activer la configuration Java EE, Maven archiver génère des fichiers dans le répertoire de construction

1
Arvind Panwar

Ceci est un fil plus ancien, mais je posterai ma réponse pour les autres . Je dois recréer le projet dans un espace de travail différent après les modifications pour le faire fonctionner, comme indiqué dans JavaServer Faces 2.2 requiert Dynamic Web Module 2.5 ou plus récent

0
kashili kashili

Les étapes ci-dessous devraient constituer la solution simple à votre problème.

  1. Projet-> Propriétés-> ProjectFacet -> Décochez jsf apply et OK.
  2. Projet-> Maven-> UpdateProject -> Ceci résoudra le problème.

Ici, lors de la mise à jour, Project Maven choisira automatiquement le module Web dynamique.

0
sk vysakh