プロジェクトファセットダイナミックWebモジュールのバージョンを3.0に変更できませんか?


329

私はEclipseで動的Webアプリケーションを作成するためにmavenを使用しています。src/test/javaおよびのようなフォルダをいくつか追加しましたsrc/test/resources。また、Javaビルドパスのライブラリを変更して、JavaSE-1.7を取得しました。ここまでは大丈夫です。

Projects Facet Dynamic Web Moduleを変更しようとすると、何か問題が発生しました。同じ場所でJavaを1.7に変更しました。また、プロジェクトファセットの動的Webモジュールのバージョンを3.0に変更することはできません。

私は私が考える変化に影響を与えるすべてのものを変えました。


OK。そのことについて謝ります。新しいMavenプロジェクトを作成すると、アーキタイプはmaven-archetype-webappになり、プロジェクトを作成した後、プロジェクトファセットの動的Webモジュールは2.3になります。動的Webモジュールのバージョンを3.0に変更したいのですが、「プロジェクトファセットの動的Webモジュールのバージョンを3.0に変更できません」という
メッセージが表示されます


Eclipse Keplerで、「Dynamic Web Module」ファセットを右クリックすると、「Unlock」オプションが表示されます。ロックを解除した後、ファセットのバージョンを変更することができました。情報のみ。
ジョナサン

これは日食のバグですか?
CDT 2016

回答:


311

私は更新しました 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>
</web-app>

そしてちょうどMaven-> Update Project ...


64
web.xmlの更新がうまくいきませんでした。@enkorが提供するソリューションは機能します:stackoverflow.com/a/18632054/378633
jplandrain 2014

5
3.1 web.xmlファイルの有効なヘッダーは次のとおりです<?xml version = "1.0" encoding = "UTF-8"?> <web-app xmlns:xsi = " w3.org/2001/XMLSchema-instance " xmlns = " xmlns.jcp.org/xml/ns/javaee " xsi:schemaLocation = " xmlns.jcp.org/xml/ns/javaee xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd " id = " WebApp_ID "version =" 3.1 ">
ヤコブアレクサンダーアイヒラー

3
web.xmlのないプロジェクトはどうですか?:)
Anand Rockzz 2016

バージョン属性を3.0に変更しても
うまくいき

上記および下記のいずれの解決策も機能しない場合は、このリンクを100%実行してください。
Raki

587

別の方法は、プロジェクトファセット構成ファイル自体を編集することです。 org.eclipse.wst.common.project.facet.core.xml

この行の動的Webモジュールのバージョンを3.0に変更します- <installed facet="jst.web" version="2.5"/>

その後:

  1. プロジェクトエクスプローラーパネルで)プロジェクトを右クリックします。
  2. Maven»Update Projectを選択します(またはを押しますAlt+F5)。

このファイル.settingsはEclipseプロジェクト内のディレクトリにあります。


3
ありがとうございました。実際、上記と同じように別のことをする必要があると思います。web.xmlのWebモジュールのバージョンを変更してください。変更しないと、「Deployment Descriptor」のバージョンは3.0に変更されません。そしてそれはmavenプラグインのバグですか?
EdgarZeng 2013

13
これは、プロジェクトにweb.xmlがない場合にこの問題を解決する唯一の方法のようです。
Shawn Sherwood

3
私はすでにweb.xmlに3.0を持っていましたが、STSはまだ更新に失敗し、mvn updateも役に立ちませんでした。ただし、この方法は機能します。
MiB 2014年

2
これにより、実際には-> org.eclipse.wst.common.project.facet.core.xml->すべてのエントリが削除されます-> maven updateプロジェクトに移動しました。
virtuvious

7
org.eclipse.wst.common.project.facet.core.xmlファイルは、application / project .settingsフォルダーにあります。
Rushi Shah

175

あなたと同じ問題があったと思います。私のweb.xmlのバージョンは2.5でしたが、プロジェクトには(プロジェクト->プロパティ->プロジェクトファセット->を右クリックして)動的Webモジュール2.3がありました。

バージョンを2.3から2.5に変更しようとしましたが、ECLIPSEはそれを許可しませんでした。解決策:動的Webモジュールの見出しの下にあるチェックマークを削除して保存し、プロジェクトを更新しました。自動的に再覚醒すると、正しいバージョンのボックスが表示されます。私はEclipse Keplerを使用しています。

ps:すぐ下にあるジョナサンコメントを見てください。とても便利です。


1
問題は解決しましたが、動的モジュールの設定を最初は許可しなかった理由を教えてください。
Suresh、2014年

26
@Suresh、バージョンの変更を許可しなかった問題は、ロックされているためだと思います。「動的Webモジュール」ファセットを右クリックすると、「ロック解除」オプションが表示されます。ロックを解除し、DWMファセットのチェックを外し、ファセットを再適用し、プロジェクトmaven updateを実行すると、エラーは解消しました。
ジョナサン

2
+1。この非常に重要なポイントがなければ、ここでの他の答えは無駄です。ジョナサンのコメントは答えに含めるべきではないと私だけが思う。
Gangnus、2015年

1
+1 @ジョナサンあなたのチップが仕事をしました。これを回答として公開する必要があります。また、これをEclipseに提起する必要があります。
aksappy

私の場合、これが機能するのは、WebモジュールpomにDnamic Webモジュールの別のバージョンが設定されているためです。これにより、プロジェクト構成の競合が発生します
ocrampico

49
  1. プロジェクトフォルダをクリックします。
  2. ウィンドウ>ビューの表示>ナビゲーターに移動します
  3. ナビゲーターに移動し、.settingsフォルダーを展開します。
  4. org.eclipse.wst.common.project.facet.core.xmlファイルを開く

    <?xml version="1.0" encoding="UTF-8"?>
    <faceted-project>
      <fixed facet="wst.jsdt.web"/>
      <installed facet="jst.web" version="2.3"/>
      <installed facet="wst.jsdt.web" version="1.0"/>
      <installed facet="java" version="1.8"/>
    </faceted-project>
  5. このようにバージョンを変更する <installed facet="jst.web" version="3.1"/>

  6. 保存する
  7. プロジェクトを更新するだけです。プロジェクトフォルダを右クリック> Maven>プロジェクトを更新>プロジェクトを選択して「OK」をクリック

これだけでうまくいきました。


43

私は同じ問題を抱えていて、プロジェクトを削除して再度追加しようとしました。トリックは、.settingsディレクトリを削除することでした。


2
私もこれをしなければなりませんでした。私はJavaベースの構成でSpring Webプロジェクトを使用していたため、web.xmlを更新することはできませんでした。
bcody 14

.settingを削除した後に機能した理由を説明してください
Abhijit Chakra

その.settingsディレクトリには多くのものが含まれており、そのうちのいくつかは時間の経過とともに変更された可能性があります。この動作に影響を与えた部分は正確にはわかりませんが、これはリセットのようなものでした。他の答えはどれもうまくいきませんでしたが、これはうまくいきました。そして、この状況にいたのは私だけではなかったようです。
Adrian Ber、2016年

私の場合、「プロジェクトファセットEARのバージョンを1.3に変更できません。」というエラーが発生しました。
Giovanni P.

私のために働いた!「プロジェクトファセットダイナミックWebモジュールのバージョンを3.0に変更できません」というエラーが発生しました
Anup Ghosh

24

削除する

.settings 
.classpatch 
.projejct 
target

そして再びmavenプロジェクトをインポートします。


Mavenプロジェクトを再度インポートするにはどうすればよいですか。私はこれが初めてです。
Daniel Brower

21

私のために働いたもの:

  1. Javaを1.8(または1.7)に変更します。

POMで、次の<build>セクションでコンパイラプラグインをバージョン1.8(または1.7)に設定する必要があります。

  <build>
    ...
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.6.0</version>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
          </configuration>
        </plugin>  
      </plugins>    
  </build>

変更Javaビルドが1.8を示していることを確認します。表示されない場合は、[編集]をクリックして、それを選択します。

ここに画像の説明を入力してください

  1. バージョンとリンクで3.0が参照されるようにweb.xmlを変更します

ここに画像の説明を入力してください

  1. Project FacetsでJavaが1.8に設定されていることを確認します

ここに画像の説明を入力してください

  1. この段階では、まだ動的Webモジュールを変更できませんでした。

それを変更する代わりに:

a)動的Webモジュールのチェックを外します

b)適用する

c)もう一度確認してください。新しいバージョン3.0を設定する必要があります。**

ここに画像の説明を入力してください

再度適用して確認した後:

ここに画像の説明を入力してください

お役に立てれば。


15

プロジェクトを右クリック→ プロパティ ; プロジェクト・ファセット、選択解除動的Webモジュール(バージョンがあるべき3.1)と選択解除のJavaServer Facesの(バージョンがある2.2)。

これを変える:

<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">

これに:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

次に、前param-nameなどの接頭辞を削除します。

最後に、Maven- > Update project


8

ナビゲータービューを開いて次の手順を実行してください

  1. (ウィンドウ>ビューの表示>その他>一般)を選択し、プロジェクトの下に.settingsフォルダーがあることを確認し、それを展開して、「org.eclipse.wst.common.project.facet.core.xml」ファイルを開き、以下を変更してファイルを保存します。
  2. この行の動的Webモジュールのバージョンを2.5に変更します-
  3. この行のJavaバージョンを1.5以上に変更します-。

5
[ビューの表示]ダイアログの[一般]フォルダーで選択するビューを指定するのを忘れていました。「ナビゲーター」ビューですか?
Roberto Linares、

6

プロジェクト構造からweb.xmlを開きますhttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd "version =" 3.0 ">サーブレット3.0 Webアプリケーション

そして、変更バージョン= "2.5"のweb.xmlファイルを更新します。

また、org.eclipse.wst.common.project.facet.core.xmlファイルをプロジェクトの.settingsファイルから変更します。手順は次のとおりです。1.ウィンドウ>ビューの表示>その他>一般>ナビゲーター

  1. プロジェクトディレクトリの下に.settingsフォルダーがあります。

  2. この行の動的Webモジュールのバージョンを2.5に変更します。4。この行のJavaバージョンを1.5以上に変更します。

プロジェクトを更新して、サーバーで実行するように設定します。

解決策についてはブログをフォローして くださいhttp://scrapillars.blogspot.in/2014/02/how-to-change-project-facet-in-eclipse.html

ソリューションはイメージイラストで作成されています


このリンクで質問に答えることができますが、回答の重要な部分をここに含め、参照用のリンクを提供することをお勧めします。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。
Micha

crunchify.com/…に示すように、pom.xmlファイルに変更を加えました。しかし、それだけでは不十分でした。また、推奨事項に従って.settingsフォルダーを開き、ファイルor.eclipse.wst.common.project.facet.core.xmlファイルを編集する必要がありました。
ブラックジャック、

6

1)プロパティ -> プロジェクトファセット -> 動的Webモジュールのチェックボックスをオフ/オフにします->適用2)目的のバージョンに変更します適用3)動的Webモジュールチェックボックスをオンにします.. --Nowあなたのしている行って -


1
うまくいきましたが、これの結果は何ですか?
sg28 2016年

4

彼らはこの問題を解決するもう1つの方法です(問題を解決するのに役立つことを願ってチェックしてください)

問題

プロジェクトファセットの動的Webモジュール2.3のバージョンを3.0に変更できません

解決

  1. プロジェクトの場所に移動します(例:-D:/ maven / todo)
  2. .settingフォルダに移動
  3. このファイルを確認してください:org.eclipse.wst.common.project.facet.core.xml
  4. ファイルを開き、 "jst.web"プロパティを2.3から3.0に変更して保存します。
  5. プロジェクトを右クリックしてプロジェクトを更新し、Mavenを更新します
  6. 完了!!! ...

3

コンテナーが何をサポートしているかに関係なく、特定のサーブレットバージョンを使用していることをWTPに明示的に通知しているため、web.xmlトリックが機能します。

私の場合、Mavenプロジェクト内でアノテーション設定を使用しており、web.xmlファイルがありません。web.xmlがない場合、WTPはMavenの依存関係を調べて、使用するサーブレットのバージョンを決定します。私の場合、私は以下を定義しました:

<dependency>
  <groupId>javax</groupId>
  <artifactId>javaee-api</artifactId>
  <version>7.0</version>
  <scope>provided</scope>
</dependency>

これを6.0に変更すると問題が修正され、現在はJavaEE 7のデフォルトである3.1ではなくサーブレット3.0を使用しています。Tomcat8からTomcat 7に移行する必要があったため、Tomcat 7はJavaEE 6 Webプロファイルのみをサポートします。今、物事は素晴らしく機能します。


3

同じ問題があり、web.xmlを編集したり、.settingsフォルダーのファイルを変更しただけでは解決しませんでした。私の解決策は、pom.xmlを編集して、目的のJavaバージョンを使用するようにmavenコンパイラプラグインを直接ポイントすることでした。

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

次に、Maven-> Update projectを実行します。その後、サーブレットのバージョンをproperties-> project facets-> Dynamic Web module versionで変更するか、以前に記述したように、org.eclipse.wst.common.project.facet.coreを手動で編集します。プロジェクトの.settingsフォルダー内のxml。


2

私の場合、web.xmlはdtdによって参照されていました。私がこれをシドニーが投稿したもののようなxsdリファレンスに変更した後、それはうまくいきました。


2

私は同じ問題を抱えていました、.settingsフォルダを削除すると問題が解決しました


1

Eclipse(Mars)でプロジェクトファセットの動的Webモジュールのバージョンを変更できない問題の解決策は次のとおりです。

  • Maven Natureを無効にする
  • web.xml名前空間が正しいバージョンを指していることを確認してください
  • Maven Natureを再度有効にする
  • Maven»プロジェクトの更新(またはAlt + F5を押す)

1

それでもシドニーの回答が役に立たない場合は、以下を試してください。シドニーの回答に従ってから、[プロパティ]> [プロジェクトファセット]に移動して[動的Webモジュール]の選択を解除し、バージョンを変更してweb.configと一致させてから、もう一度選択します。[適用]> [保存してからMavenアップデート]をクリックします。

web.xml

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:web="http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="Web_App_1" version="3.1">

<display-name>JavaServerFaces</display-name>

<!-- Change to "Production" when you are ready to deploy -->
<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>

<!-- Welcome page -->
<welcome-file-list>
    <welcome-file>jsfs/hello.xhtml</welcome-file>
</welcome-file-list>

<!-- JSF mapping -->
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<!-- Map these files with JSF -->
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>jsfs/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>


1

ここでは多くの答えを試しましたが、どれもうまくいきませんでした。それから私はここに私の問題についての記事を見つけました。ここでも共有したいと思いました。

以下は、簡単な手順です。

  1. コンパイラー準拠レベルを設定します。
  2. プロジェクトファセットを更新する
  3. インストール済みのJREを設定から更新
  4. Java 1.7を使用するようにpom.xmlに構成を追加し、最後に
  5. Mavenからのプロジェクトの更新。

1

Maven Eclipse Webプロジェクトの場合、動的Webモジュールのバージョンを変更するには、3つの場所を確認する必要があります。Eclipseを使用していて、次の項目を確認した場合: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">

2)maven:

<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <scope>provided</scope>   ## ensure you have tomcat 7 not other version
</dependency>

<plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.0</version>
      <configuration>
            <source>1.7</source> ## at least 6
            <target>1.7</target>
      </configuration>
</plugin>

3)Eclipseビルドパスとコンパイラバージョンは1.7です

あなたはまだmavenにエラーマーカーがあります:

cannot change version of project facet dynamic web module to 3.0 one or more constrants have not been satisfied

次に、次のことができます。動的Webモジュールのチェックを外し、再チェックします。どういうわけか日食ファイルの.settingsが壊れているからだと思います。2番目のヒントについては、Tomcatのどのバージョンが良いでしょうか。


1

一般的なJavaプロジェクトをMavenプロジェクトに変換しようとすると、このエラーが発生しました

私がしたことは、私のプロジェクトで必要なJavaコンパイラーのバージョンを判別することでした。私のプロジェクトでは、最小Javaバージョンは1.8です。

バージョンを1.8私のIDE よりも低いものに下げると、インポートされたライブラリの束を認識しないという不満が出始めます。したがって、私の最小Javaバージョンは1.8

1. Right click your project
2. Go to Properties
3. Left hand-side panel, click "Project Facets"
4. For Java, set the version according to your minimum version

ここに画像の説明を入力してください

ここで、Javaコンパイラのバージョンが、Project Facetsで設定したものと同じJavaバージョンを使用していることを確認してください。

1. Right click your project
2. Go to Porperties
3. Left hand-side panel, click "Java Compiler"
4. Make sure Java Compiler version is the same. 
5. If it is not the same, change the version. (Uncheck "Use compliance from execution environment' if needed to make the changes.

ここに画像の説明を入力してください

変更後、エラーは解決されます。それでもエラーが表示される場合は、プロジェクトを右クリックして、[Maven]、[プロジェクトの更新]の順にクリックします。



0

org.eclipse.wst.common.project.facet.core.xmlファイルを開き、jst.webのバージョンを3.0に変更します。また、web.xmlをバージョン3.0に更新します。プロジェクトを保存して更新します。お役に立てれば。私はEclipse Junoを使用しています


0

これはpagurixの答えのバリエーションですが、Eclipse Marsを使用しています。

web.xmlファイルをweb.bakに変更します。

エラーを無視して、次に再生成します。

プロジェクトのプロパティ->プロジェクトファセットに移動し、動的Webモジュールのバージョンを必要なものに設定します。Eclipseで保存できるようになりました。

ここでプロジェクトを右クリックします。「Java EEツール」->「配備記述子スタブの生成」を選択します。

これにより、必要なバージョンの新しいweb.xmlが作成されます。

新しいweb.xmlを開き、XMLヘッダーと完全なweb-app開始タグ全体を元のweb.bakにコピーし、新しいweb.xmlを削除して、web.bakの名前をweb.xmlに戻します。

できました。


0

鉱山はWeb Module 3.0web.xmlありましたがproperties>Dynamic Web Moduleにありました3.1

私はweb.xmlこれを次のように変更しました:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

この変更後、次のようにします。 right click on project>Maven>Update Project...


0

この問題のバージョンでは、プロジェクトを右クリックします->プロパティ->プロジェクトファセット->ダイナミックWebモジュールを右クリック->ロック解除->チェック解除-> 2.5バージョンの選択->適用-> Mavenの更新


0

正しいバージョン、xsdの場所でweb.xml変更し、正しいバージョンでorg.eclipse.wst.common.project.facet.core.xml変更してmaven updateを実行することで問題を解決しました。


0

Mavenの更新は私のために働きました

プロジェクトを選択してALT + F5を押し、プロジェクトを選択して[OK]をクリックします


0

同じ症状があり、治療法も異なりました。新しいJSF WebSocketフックをそこで楽しむためにJSF 2.2.4 / Spring 3.0 WebアプリケーションをJSF 2.3にアップグレードしようとしていましたが、Eclipse(実際にはSTS)は連携しませんでした。EclipseのProject Facetsでは、以前の回答で指示されているようにorg.eclipse.wst.common.project.facet.core.xmlファイルを直接編集するまで、JSF 2.3は利用できませんでした。最高の値は2.2でした。

これが私がジャンプしたフープです。基本的にこの構成をすべて理解していないため、これらすべてが必要だったとは思いません。

Eclipseで、「インストールされている1つ以上のファセットの実装が利用できないときにファセットプロジェクトを変更すると、プロジェクトが破損する可能性があります。続行してもよろしいですか?」という恐ろしい警告を頻繁に受け取りました。これにより、より頻繁にコミットするように促されましたが、破損は発生しませんでした。

  1. POM、Eclipseコンパイラー、Eclipse Project FacetsでJDKを1.7から1.8にアップグレードします。
  2. 以下のMaven依存関係を更新します。

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.4</version>
        <scope>provided</scope>
    </dependency>

    ...から:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.0</version>
        <scope>provided</scope>
    </dependency>

...と...

    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.2.4</version>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.2.4</version>
    </dependency>

...から:

    <dependency>
        <groupId>javax.faces</groupId>
        <artifactId>javax.faces-api</artifactId>
        <version>2.3</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.faces</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <version>2.0</version>
    </dependency>

私はweb.xml名前空間宣言を次のように更新する必要がありました。

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">

...から:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

Project Facets-> Dynamic Web Moduleを2.5から3.0に更新する必要がありました。3.1を試しましたが、エラーが発生しました。

このプロセスで、この投稿のタイトルにある「プロジェクトファセットダイナミックWebモジュールのバージョンを3.0に変更できません」というエラーが頻繁に発生し、EclipseはプロジェクトのコンパイルまたはプロジェクトファセットでのJSF 2.3の提供を拒否しました。org.eclipse.wst.common.project.facet.core.xmlファイルを指示どおりに編集するとエラーが消え、EclipseはProject FacetsでJSF 2.3を提供し、プロジェクトはTomcat 9.0.8でコンパイルされて正常に実行されました。ただし、プロジェクトファセットは引き続き「プロジェクトファセットjst.jsfのバージョン2.3の実装が見つかりませんでした。機能が制限されます。」と警告しました。これは単に、私のPOMで宣言されたJSF 2.3実装が見つからないため、オートコンプリートやその他のEclipseの便利な機能が利用できないことを単に意味していると思います。

これが誰かを助けることを願っています。グーグル検索は、アリ・バッサムと間接的に助けたBalusCによってこの投稿だけをもたらしました。


0

同じ問題が発生しました-ワークスペースからプロジェクトを削除し、「Eclipseファイル/フォルダー(例:.project、.settingsなど)をクリーンアップしてから、Mavenプロジェクトを再度インポートしましたが、うまくいきました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.