web-dev-qa-db-de.com

JavaServer Faces 2.2 erfordert Dynamic Web Module 2.5 oder neuer

Ich habe ein paar Dinge ausprobiert, aber dieses Problem besteht immer noch. Ich benutze Eclipse Kepler. Beim Importieren eines Maven-Projekts wird ein Fehler angezeigt

JavaServer Faces 2.2 kann nicht installiert werden: Eine oder mehrere Einschränkungen wurden nicht erfüllt

JavaServer Faces 2.2 erfordert Dynamic Web Module 2.5 oder neuer

1) Ich habe ein paar Dinge ausprobiert wie in Maven Java EE-Konfigurationsmarker mit Java Server Faces 1.2 , aber kein Glück . 2) Ich ging auch in .settings und modifizierte org.Eclipse.wst.common.project .facet.core.xml und jst.web so geändert, dass sie auf Version 2.5 oder 3.0 verweisen; aber ich bekomme einige andere fehler.

Ich versuche, dass Sencha GXT-Beispiele in Maven/Eclipse Build basierend auf http://neiliscoding.blogspot.ie/2012/05/how-to-setup-examples-for-use-in-gxt-3 funktionieren. html und mit diesem Javaserver in Eclipse ein Problem. Hier ist meine 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>

Hier ist meine web.xml-Datei 

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

Wie Sie sehen können, habe ich verschiedene dtds in der obigen web.xml ausprobiert, aber ich habe immer noch das Problem. Würde mich über Hinweise freuen

18
kashili kashili

Ihr Problem ist, dass Sie Ihre web.xml als Servlet 2.3-kompatibel gekennzeichnet haben (oder vielleicht nicht einmal das - ich bin nicht sicher, wie Ihr Doctype in einem Kommentar interpretiert wird).

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

sie müssen mindestens mit Servlet 2.5 kompatibel sein, damit das Eclipse-Tool funktionieren kann.

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

(ungetestet - kopiert aus http://javahowto.blogspot.dk/2009/10/sample-webxml-servlet-25.html )

Möglicherweise müssen Sie das Eclipse-Projekt neu erstellen, damit die Änderungen übernommen werden.

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

Aktualisieren Sie zuerst Ihre web.xml wie erwähnt Thorbjørn Ravn Andersen. Ich habe Version 3.0 wie folgt verwendet:

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

Klicken Sie dann mit der rechten Maustaste auf Ihr Projekt, und wählen Sie Eigenschaften -> Projektfacetten aus. Dort wird die Version Ihres Dynamic Web Module angezeigt. 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).

Hoffe das klappt!

25
raghera

Ich hatte das gleiche Problem und hatte in meiner web.xml Version 2.5, während das Projekt das dynamische Web-Modul 2.3 (mit Rechtsklick auf Projekt-> Eigenschaften-> Progekt-Facetten->) hatte. Obwohl ich versuchte, die Version von 2.3 auf 2.5 zu ändern, erlaubte Eclipse es nicht. 

Solution: Ich habe das Häkchen unter der Überschrift Dynamic Web Module entfernt, ich habe das Projekt gespeichert und gespeichert. Automatisches Wiedererwachen geht in die Box mit der richtigen Version. 

2
Piyush Mittal

Die Lösung, die ich für dieses Problem gefunden hatte, ist 

1) Klicken Sie mit der rechten Maustaste auf Projekt> Eigenschaften> Dynamisches Webmodul deaktivieren> Übernehmen und schließen.

2) Klicken Sie mit der rechten Maustaste auf das Projekt> Maven> Projekt aktualisieren ... 

2
user5698605

Meine eigene Lösung bestand darin, die rignt-Abhängigkeit in die pom.xml zu setzen.

Wenn das Projekt in den Facetten als 3.1 Web Dynamic Project deklariert ist, muss die Java.servlet-api-Abhängigkeit auch die Version 3.1.0 (oder 3.1.x) sein. 

In meinem Fall hatte ich die Version 3.0.1 verlassen, so dass diese spezifische Fehlermeldung in der Ansicht "Probleme" angezeigt wurde:

Version von Dynamic Web Module für Projektfacetten kann nicht in 3.0 geändert werden. Eine oder mehrere Einschränkungen wurden nicht erfüllt.

(Stellen Sie außerdem sicher, dass Ihre web.xml auch die 3.1 sein muss).

1

Mein Projekt stand vor demselben Problem. Ich habe die web.xml wie folgt geändert:

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

Der Fehler blieb bestehen. Nachdem Sie die im folgenden Link gemachten Vorschläge befolgt hatten, wurde das Problem gelöst. 

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

1

Versuchen Sie Folgendes: Löschen Sie Ihr Projekt in Eclipse. Löschen Sie das Eclipse-Projekt, nicht Ihre Anwendung! Es sollte aus der Liste der Projekte verschwinden. In Windows Explorer suchen Sie Ihr Projektverzeichnis und löschen Sie die Verzeichnisse .settings und target (falls gefunden) und löschen Sie die Dateien .project und .classpath . Zurück zu Eclipse, vorhandene importieren Maven-Projekt. Das ist alles!

Angenommen, Ihre web.xml hat den richtigen Header <web-app> für Ihre JSF-Zielversion.

1
JoseA

** Öffnen Sie die pom.xml Ihres Projekts und fügen Sie dieses Plugin-Tag hinzu Klicken Sie anschließend mit der rechten Maustaste auf Ihr Projekt> Maven> Projekt aktualisieren….

<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

Ich bin auch auf dieses Problem gestoßen, die Antwort von Thorbjørn Ravn Andersen hat nicht geholfen, da ich bereits bei Dynamic Web Module 2.5 war. Ich war vor Jahren auf dieselbe Ausgabe gestoßen und habe aufgegeben. Ich entschied mich erneut zu untersuchen, was ich zuerst tat, und versuchte, die Unterstützung für "Dynamic Web Module" zu entfernen, indem das Kontrollkästchen deaktiviert wurde. Also habe ich es freigeschaltet und deaktiviert/deaktiviert. Ich habe dann JavaServer Faces freigeschaltet, das Kontrollkästchen deaktiviert und auf "Anwenden" geklickt - keine Explosion! Mit gekreuzten Fingern überprüfte ich das Dynamic Web Module erneut und stellte es auf 3.1. Anschließend habe ich JavaServer Faces erneut auf 2.2 gesetzt. Klicken Sie auf "Anwenden" - kein "großer Badda-Boom", es hat funktioniert - Gewinn! Ich hoffe, das hilft jedem anderen mit dem gleichen Problem, es ist auch nicht darauf angewiesen, XML-Dateien anzupassen.

Hinweis: Ich habe auch die Java-Faceted-Version auf 1.8 gesetzt, so wie es erforderlich war.

0
JGlass