事象 : Cannot change version of project facet Dynamic Web Module to 2.5.
- 環境
- CentOS Linux release 7.8.2003 (Core)
- Payara Server 5.194
- Eclipse IDE for Enterprise Java Developers.Version: 2020-03 (4.15.0)
- openjdk version "11.0.7" 2020-04-14 LTS
Mavenを更新したらエラーが出た
Eclipseの「Problems」タブのメッセージ
Cannot change version of project facet Dynamic Web Module to 2.5.
org.eclipse.wst.common.project.facet.core.xml
でfacet="wst.jsdt.web"
はPreferenceの[Project Facet]の[Dynamic Web Module]で設定したとおり4.0
になっている・・・
org.eclipse.wst.common.project.facet.core.xml
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="Payara Server 5 (5.194)"/>
<fixed facet="wst.jsdt.web"/>
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="java" version="11"/>
<installed facet="jst.jsf" version="2.3"/>
<installed facet="jst.web" version="4.0"/>
<installed facet="jst.jaxrs" version="2.1"/>
</faceted-project>
原因 : web.xmlで定義しているServletのバージョンが2.5だから
参考 : java - Cannot change version of project facet Dynamic Web Module to 3.0? - Stack Overflow
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"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<!-- 省略 -->
対応 : ServletのバージョンをDynamic Web Moduleのバージョンに変更する
参考 : web.xmlのバージョン別DTD・XSDの宣言方法 | KATSUMI KOKUZAWA'S BLOG
- web.xmlに定義されているServletのバージョンをDynamic Web Moduleのバージョンに変更する
- [Package Explorer]でプロジェクトを選択 > 「Alt + F5」でダイアログを表示 > [OK]ボタンでMavenを更新する
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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_4_0.xsd"
version="4.0">
<!-- 省略 -->
事象 : プロジェクト・ファセットのバージョンを 動的 Web モジュール から 3.0 に変更できません。
- 環境
- macOS Mojave バージョン10.14.5
- Eclipse 2019-03 Java Mac 64bit Full Edition(Java)
既存のMavenプロジェクトをインポートしたら怒られた
Eclipseの「問題」タブのメッセージ
(日本語版)
プロジェクト・ファセットのバージョンを 動的 Web モジュール から 3.0 に変更できません。
(英語版)
Cannot change version of project facet Dynamic Web Module to 3.0.
原因 : 動的モジュールをバージョンを下げることができないから?
Eclipseの動的Webモジュール設定の値を間違えて起動できなくなる | つかびーの技術日記
下げられない理由がよくわからない・・・バージョンを下げたつもりもない・・・最初からweb.xmlに3.0って書いてあったのに・・・
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" 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">
<!-- 省略 -->
対応 : org.eclipse.wst.common.project.facet.core.xml
でバージョンを変更する
- Eclipseを一旦落とす
- 以下
に記載されているjst.web
のバージョンを変更する。{プロジェクトのディレクトリ}/.settings/org.eclipse.wst.common.project.facet.core.xml
- Eclipseをクリーン起動する
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="3.0"/> <!-- ここのversionを変更する -->
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="java" version="1.6"/>
</faceted-project>