webentwicklung-frage-antwort-db.com.de

Maven Java EE-Konfigurationsmarker mit Java Server Faces 1.2

Ich habe ein komisches Konfigurationsproblem mit Maven in Eclipse. Obwohl ich das Projekt erstellen und in Tomcat fehlerfrei bereitstellen kann, wird auf der Registerkarte "Markierung" die folgende Meldung angezeigt:

[-] 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.

In der Tat verwende ich Dynamic Web Module 2.4, das die Quelle der Nachricht wäre. Ich müsste es auf mindestens 2,5 ändern, um mit JSF zu arbeiten. Das Problem ist, ich benutze nicht einmal JSF.

Wahrscheinlich braucht es eine der Abhängigkeiten des Projekts. Ich habe den folgenden Befehl ausgeführt, um den Abhängigkeitsbaum für mein Projekt herauszufinden:

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

und überraschen! Kein JSF 1.2 erwähnt.

BEARBEITEN Vergessen, mein PC-Setup hinzuzufügen:

OS: Ubuntu 12.10

Eclipse: 4.2 SR1

Java: jdk1.5.0_22 und jdk1.7

Apache Maven: 3.0.4

Maven-Startseite:/usr/share/maven

m2e: 1.3.1.20130219-1424

m2e-wtp: 0,17,0.20130212-1821

Keiner meiner Mitarbeiter hat dieses Problem. Zwei von ihnen verwenden Windows, zwei verwenden Ubuntu 12.10. Einer von ihnen verwendet Eclipse 4.2, andere verwenden Eclipse 3.7. Anscheinend hat dies entweder mit 4.2SR1 zu tun oder mit meinem Projekt-Setup. Aber ich kann nicht finden, wo das Problem liegt.

Hier ist meine pom.xml-Datei:

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

Wie kann ich das lösen?

26
Tarek

Ich hatte das gleiche Problem. Nachdem ich Geschwindigkeitsabhängigkeiten in meinem Maven-Projekt hinzugefügt hatte, erhielt ich den gleichen Fehler im Marker-Tab. Dann bemerkte ich, dass die web.xml-Datei, die von maven project erstellt wird, das Schema servlet2.3 hat. Als ich ihn in ein Servlet 3.0-Schema geändert und das Projekt gespeichert habe, ist dieser Fehler verschwunden. Hier ist die web.xml-Datei, die maven erstellt

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

Ändern Sie es in 

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

speichern Sie das Projekt und Ihr Fehler wäre weg.

41
Basit

Ich hatte auch das gleiche Problem.

Die Lösung für mich war, Folgendes in der pom.xml wie vorgeschlagen hier hinzuzufügen.

<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

Ich hatte ein ähnliches Problem. Ich arbeitete an einem Projekt, bei dem ich die Konfigurationsdatei web.xml nicht kontrollierte. Daher konnte ich die vorgeschlagenen Änderungen zum Ändern der Version nicht verwenden. Natürlich verwendete das Projekt nicht JSF, daher war es für mich besonders ärgerlich. 

Ich fand, dass es einewirklich einfache Korrekturgibt. Gehen Sie zu Voreinstellungen> Maven> Java EE-Integration und deaktivieren Sie das Kontrollkästchen "JSF Configurator".

Ich habe dies in einem neuen Arbeitsbereich gemacht, bevor ich das Projekt erneut importierte, aber es funktioniert möglicherweise genauso gut bei einem vorhandenen Projekt ... nicht sicher.

10
Mangusta

Ich bin dem auch bei Maven-Projekten begegnet. Um das Problem zu umgehen, musste ich Folgendes tun:

Aktualisieren Sie zuerst Ihre 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>

Klicken Sie dann mit der rechten Maustaste auf Ihr Projekt und wählen Sie Eigenschaften -> Projektfacetten. Dort sehen Sie die Version Ihres Dynamic Web Module. Dies muss von Version 2.3 oder was auch immer auf Version 2.5 oder höher geändert werden (ich wählte 3.0).

Dazu musste ich jedoch das Kontrollkästchen für Dynamic Web Module -> Apply deaktivieren und dann ein Maven-Update für das Projekt durchführen. Gehen Sie zurück in das Projektfacetten-Fenster und es sollte bereits mit Ihrer web.xml-Konfiguration übereinstimmen - in meinem Fall 3.0. Wenn nicht, sollten Sie es ändern können.

Wenn dies für Sie nicht funktioniert, klicken Sie mit der rechten Maustaste auf das Dynamic Web Module-Facet und wählen Sie "Version ändern" (und stellen Sie sicher, dass sie nicht gesperrt ist).

Oder Sie können diesen Schritten folgen:

  1. Fenster> Ansicht anzeigen> Andere> Allgemein> Navigator
  2. In Ihrem Projektverzeichnis befindet sich ein Ordner .settings
  3. Ändern Sie die Version des dynamischen Webmoduls in dieser Zeile in 3.0
  4. Ändern Sie die Java-Version in dieser Zeile auf 1.5 oder höher 

vergiss nicht, dein Projekt zu aktualisieren

Hoffe das klappt!

8
Fakher

Nachdem ich die Menge in meinem POM geändert und mein JDK aktualisiert hatte, erhielt ich die "Eine oder mehrere Einschränkungen wurden nicht erfüllt" in Bezug auf Google App Engine. Die Lösung bestand darin, Eclipse-Projekteinstellungen löschen und neu importieren.

Unter OS X habe ich dies in Terminal gemacht, indem ich in das Projektverzeichnis und gewechselt habe

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

Sie sollten Ihre Projektfacetten in der Projektkonfiguration überprüfen. Hier können Sie die JSF-Abhängigkeit deaktivieren.

enter image description here

2
Torsten

Das m2e-Plugin generiert jedes Mal, wenn Sie ein Projekt aktualisieren, eine Projektkonfiguration (Maven-> Update Project ...). Diese Aktion überschreibt die manuell in Eclipse konfigurierte Facetteneinstellung. Daher müssen Sie sie auf der Pom-Ebene konfigurieren. Dazu müssen Sie die Eigenschaften in der Pom-Datei festlegen Sie können dem m2e-Plugin sagen, was zu tun ist. 

Aktivieren/Deaktivieren Sie die JAX-RS/JPA/JSF-Konfiguratoren auf Ebene pom.xml .__ Die optionalen JAX-RS-, JPA- und JSF-Konfiguratoren können auf Arbeitsbereichsebene über Fenster> Voreinstellungen> Maven> Java EE-Integration aktiviert oder deaktiviert werden . Jetzt können Sie diese Konfiguratoren direkt über Ihre pom.xml-Eigenschaften genauer steuern:

Durch das Hinzufügen von false im Abschnitt mit den Pom-Eigenschaften wird der JAX-RS-Konfigurator deaktiviert Durch das Hinzufügen von false in den Abschnitt mit den Pom-Eigenschaften wird der JPA-Konfigurator deaktiviert Durch das Hinzufügen von false in den Abschnitt mit den Pom-Eigenschaften wird der JSF-Konfigurator deaktiviert. Die Pom-Einstellungen Überschreiben Sie immer die Arbeitsbereichseinstellungen. Wenn Sie beispielsweise den JPA-Konfigurator auf Arbeitsbereichsebene deaktiviert haben, wird er bei Verwendung von true ohnehin für Ihr Projekt aktiviert. ( http://wiki.Eclipse.org/M2E-WTP/New_and_Noteworthy/1.0.0 )

2
m2lit

Eclipse ist auf dem Factes-Bildschirm fehlerhaft und aktualisiert die Konfigurationsdateien manchmal nicht im Arbeitsbereich. Es gibt zwei Möglichkeiten, die Sie ausprobieren können:

  1. Wechseln Sie zur Datei org.Eclipse.wst.common.project.facet.core.xml, die sich im Ordner .settings des Eclipse-Projekts befindet. Löschen Sie den JSF-Facetteneintrag manuell. Sie können auch andere Facetten aktualisieren.

  2. Klicken Sie mit der rechten Maustaste auf Projekt und wählen Sie Eigenschaften -> Maven -> Java EE Integeration. Optionen auswählen: Projektspezifische Einstellungen aktivieren, Java EE-Konfiguration aktivieren, Maven-Archivierer generiert Dateien unter dem Build-Verzeichnis

1
Arvind Panwar

Dies ist ein älterer Thread, aber ich werde meine Antwort für andere posten .. Ich muss das Projekt nach der Änderung in einem anderen Arbeitsbereich neu erstellen, damit es funktioniert, wie in JavaServer Faces 2.2 beschrieben, erfordert Dynamic Web Module 2.5 oder neuer

0
kashili kashili

die gleiche Lösung wie Basit .. aber die Version 3.0 funktioniert bei mir nicht versuchen Sie dies .. bei mir funktioniert das integrieren von streben 2.x

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://Java.Sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://Java.Sun.com/xml/ns/j2ee http://Java.Sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>blabla</display-name>
...
</web-app>
0
Soufiane ELH

Die folgenden Schritte sollten die einfache Lösung für Ihr Problem sein

  1. Projekt-> Eigenschaften-> ProjektFacet -> Deaktivieren Sie die Option jsf anwenden und auf OK.
  2. Projekt-> Maven-> UpdateProject -> Dies löst das Problem.

Während der Aktualisierung wählt Project Maven automatisch das Dynamic-Webmodul aus

0
sk vysakh