同じ症状があり、治療法も異なりました。新しい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つ以上のファセットの実装が利用できないときにファセットプロジェクトを変更すると、プロジェクトが破損する可能性があります。続行してもよろしいですか?」という恐ろしい警告を頻繁に受け取りました。これにより、より頻繁にコミットするように促されましたが、破損は発生しませんでした。
- POM、Eclipseコンパイラー、Eclipse Project FacetsでJDKを1.7から1.8にアップグレードします。
以下の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によってこの投稿だけをもたらしました。