LoginSignup
7
6

More than 3 years have passed since last update.

プロジェクト・ファセットのバージョンを 動的 Web モジュール からx.xに変更できません。

Last updated at Posted at 2019-06-24

事象 : 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を更新したらエラーが出た:cold_sweat:

Eclipseの「Problems」タブのメッセージ
Cannot change version of project facet Dynamic Web Module to 2.5.

org.eclipse.wst.common.project.facet.core.xmlfacet="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

  1. web.xmlに定義されているServletのバージョンをDynamic Web Moduleのバージョンに変更する
  2. [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プロジェクトをインポートしたら怒られた:cold_sweat:

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でバージョンを変更する

  1. Eclipseを一旦落とす
  2. 以下 に記載されているjst.webのバージョンを変更する。
    • {プロジェクトのディレクトリ}/.settings/org.eclipse.wst.common.project.facet.core.xml
  3. 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>
7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6