web-dev-qa-db-ja.com

JavaServer Faces 2.2にはDynamic Web Module 2.5以降が必要です

いくつか試してみましたが、それでもこの問題は解決しません。 Eclipse Keplerを使用しています。 Mavenプロジェクトのインポート時に次のエラーが表示されます

JavaServer Faces 2.2をインストールできません:1つ以上の制約が満たされていません

JavaServer Faces 2.2にはDynamic Web Module 2.5以降が必要です

1) Maven Java EE Con​​figuration Marker with Java Server Faces 1.2 で述べたように、運はありません。2 )また、.settingsに移動してorg.Eclipse.wst.common.project.facet.core.xmlを変更し、jst.webを2.5または3.0バージョンを指すように変更しましたが、他のエラーが発生します。

私は http://neiliscoding.blogspot.ie/2012/05/how-to-setup-examples-for-use-in-gxt-に基づいて、Maven/EclipseビルドでSencha GXTサンプルを動作させようとしています。 3.html およびこのjavaserverがEclipseの問題に直面している。これが私の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>

ここに私の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>

ご覧のとおり、上記のweb.xmlで別のdtdsを試しましたが、まだ問題があります。ヒントをいただければ幸いです

22
kashili kashili

あなたの問題は、web.xmlがサーブレット2.3準拠としてマークされていることです(または、そうではないかもしれません-コメント内のdoctypeがどのように解釈されるかわかりません)。

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

eclipseツールが機能するには、少なくともサーブレット2.5に準拠している必要があります。

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

(未テスト- http://javahowto.blogspot.dk/2009/10/sample-webxml-servlet-25.html からコピー)

変更を有効にするには、Eclipseプロジェクトを再作成する必要がある場合があります。

私はMavenプロジェクトでもこれに遭遇しました。これは問題を回避するために私がしなければならなかったことです:

まず、ThorbjørnRavn Andersenの説明に従ってweb.xmlを更新します。以下のようにバージョン3.0を使用しました。

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

次に、プロジェクトを右クリックして、[プロパティ]-> [プロジェクトファセット]を選択します。そこに、ダイナミックWebモジュールのバージョンが表示されます。これは、バージョン2.3などからバージョン2.5以降に変更する必要があります(3.0を選択しました)。

ただし、これを行うには、[動的Webモジュール]-> [適用]のチェックボックスをオフにして、プロジェクトでMaven更新を実行する必要がありました。 Project Facetsウィンドウに戻ります。web.xml構成(私の場合は3.0)と既に一致しているはずです。そうでない場合は、変更できるはずです。

これがうまくいかない場合は、Dynamic Web Module Facetを右クリックして、バージョンの変更を選択します(ロックされていないことを確認します)。

それがうまくいくことを願っています!

26
raghera

私は同じ問題を抱えており、私のweb.xmlにはバージョン2.5がありましたが、プロジェクトには(プロジェクト->プロパティ-> Progect Facetsを右クリックして)Dynamic Web Module 2.3がありました。バージョンを2.3から2.5に変更しようとしましたが、Eclipseでは許可されませんでした。

Solution:動的Webモジュールの見出しの下にあるチェックマークを削除し、保存して、プロジェクトを更新しました。自動的に再起動すると、正しいバージョンでボックスに入ります。

2
Piyush Mittal

この問題に対して私が見つけた解決策は

1)[プロジェクト]> [プロパティ]> [動的Webモジュールのチェックを外す]> [適用して閉じる]を右クリックします。

2)Project> Maven> Update Project ...を右クリックします.

2
user5698605

私自身の解決策は、pom.xmlに厳密な依存関係を置くことでした。

プロジェクトがファセットで3.1 Web Dynamic Projectとして宣言されている場合、Java.servlet-api依存関係も3.1.0(または3.1.x)バージョンでなければなりません。

私の場合、3.0.1バージョンを残していたため、「Problems」ビューにこの特定のエラーメッセージが表示されました。

プロジェクトファセットダイナミックWebモジュールのバージョンを3.0に変更できません。 1つ以上の制約が満たされていません。

(もちろん、web.xmlも3.1でなければならないことを確認してください)。

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

エラーが続いた。しかし、次のリンクで行われた提案に従うと、問題は解決しました。

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

1

これを試してください:Eclipseでプロジェクトを削除します。アプリケーションではなくEclipseプロジェクトを削除してください!プロジェクトのリストから消えます。 Windowsエクスプローラーでプロジェクトディレクトリを見つけ、ディレクトリ.settingsとターゲット(見つかった場合)を削除し、ファイル.projectと.classpathを削除します。 Eclipseに戻り、既存のMavenプロジェクトをインポートします。それだけです!

Web.xmlにターゲットJSFバージョンへの正しいヘッダー<web-app>があると仮定します。

1
JoseA

**プロジェクトのpom.xmlを開き、このプラグインタグを追加します最後に、プロジェクトを右クリックし、Maven>プロジェクトを更新…

<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

ThorbjørnRavn Andersenの答えは、Dynamic Web Module 2.5に既にいたので、助けにはなりませんでした。私は数年前にこの同じ問題に遭遇し、あきらめました。私が最初にやったことを再調査することにしたのは、「ダイナミックWebモジュール」のサポートをオフにして、サポートを削除することでしたが、ロックされていますか?そのため、ロックを解除し、無効化/チェック解除しました。次に、JavaServer Facesのロックを解除し、チェックを外して、適用をクリックしました。爆発はありません!指を交差させてから、Dynamic Web Moduleを再確認し、3.1に設定しました。次に、JavaServer Facesを2.2に設定して再確認しました。適用をクリックしました-「大きなバッドブーム」はありませんでした-利益がありました!これが同じ問題を抱えている他の人にも役立つことを願っています。また、XMLファイルの調整に依存しないことを願っています。

注:また、Javaファセットバージョンを1.8に設定しただけでなく、必要でした。

0
JGlass