| サンプル集 |
|
■VC ■C# ■Java ■BorlandC ■LinuxC ■MS-DOS ■bash ■Excel VBA ■VBScript ■PHP ■HTML ■perl ■iPhone ■Android ■Lua ■other |
| Linuxコマンド |
| 用語集 |
| debian メモ |
| apache2 メモ |
| MySQL メモ |
| Oracle メモ |
| HOME |
Dynamic Web Module 3.1 requires Java 1.7 or newerというエラーが出ました。
◆環境| OS | Windows 7 Professional Service Pack 1 (64bit) |
|---|---|
| eclipse | Luna Service Release 1 (4.4.1) |
| m2e | 1.5.0.20140606-0033 |
| m2e-wtp | 1.1.0.20140611-1646 |
eclipseのMarkersにこのエラーが出ています。

「Dynamic Web Module 3.1 は Java 1.7以上が必要です」という事だと思いますが、既存のプロジェクトはJava 1.6で作られているため1.7に上げることができません。 なんとかJava 1.6のまま進められないか調べてみます。
関係ありそうなキーワードと感想
Dynamic Web Moduleとは、動的Webモジュールの事だと思います。
この場合、プロジェクトルートフォルダの配下にある ./settings/org.eclipse.wst.common.project.facet.core.xmlのjst.webのversion="3.1"を2.4に変更すればよいとの事です。
しかし、エラーが出ているプロジェクトフォルダの配下の ./settingsフォルダ内に該当のファイルがありませんでした。
- 動的Webモジュールとはサーブレットのことである模様。
- Server Spec 3.1はTomcat 8.0.xに対応。
- eclipseのWTPはバージョン3.6.0からTomcat8に対応している。
- WTPはWeb Tools Platformの略である模様。
- WTPはeclipse上でWeb(J2EE)アプリケーションの開発を行うためのplgu-in。
- WTPはEclipse IDE for Java EE Developersに標準で入っている。
- WTPはWST(Web Standard Tools)とJST(J2EE Standard Tools)の2つのサブプロジェクトで構成されている。
- WSTはJ2EEに依存しない部分(HTML、XML、SQLなど)
- JSTはJ2EEに特化した部分(Servlet、JSP、EJBなど)
eclipseの[Window]-[Preferences]を開きTomcatのバージョンを確認します。

Tomcatのバージョンは6.0.41ですね。
WTPのバージョンを確認します。
eclipseの[Help]-[About Eclipse]を開きます。

「wtp」のアイコンをクリックします。

Eclipse Web Developer Toolsのバージョンは 3.6.1.v201409112028 になっています。
ビルドが通っている環境のバージョンは 3.2.5.v201106202200-7O7CFbkEMh85QwIFv83KZ5f9rXw6jU_CvbVrOjx でした。
javax-servletのバージョン確認
プロジェクトを右クリックし[Properties]を選択します。 ウィンドウが開いたら[Java Build Path]を選択し、[Libraries]タブを選択し、[Maven Dependencies]を展開します。

javax-servlet-apiが3.1.0の模様です。
pom.xmlでバージョン2.4を指定してみます。 version要素がなかったので新たに追加しました。
| pom.xml | ||
|
警告が出ました。
親のpom.xmlにバージョンの記載があったため警告が出たようです。 しかし、親のpom.xmlのバージョンは2.4と書かれていました。 なぜ3.1が配置されているのでしょうか。
Librariesをよく見てみると、javax.servlet-api-3.1.0.jarの他にservlet-api-2.4.jarも設定されていました。

依存関係のある別のプロジェクトのpom.xmlにjavax.servlet-apiの3.1の指定があったのでコメントアウトします。
| pom.xml | ||
|
Librariesからjavax.servlet-api-3.1.0.jarは消えました。 しかし、依然としてDynamic Web Module 3.1 requires Java 1.7 or newerというエラーが出ています。
Maven Additionalメニューから3.1の方を無効にできるようです。 プロジェクトのプロパティを開きます。

動いている環境の方ではMavenの下にMaven Additionalという項目がありましたが、今の環境では項目がありませんでした。
Maven Integration for Eclipseのバージョンが古いのでしょうか。 [Help]-[Eclipse Marketplace...]を開きmaven integrationを検索します。

Updateボタンが押せるようになっていたので押します。

Confirmを押します。

I accept the terms of the license agreementをチェックしFinishを押します。
インストール後、eclipseを再起動したらDynamic Web Module 3.1 requires Java 1.7 or newerというエラーが消えました。 プロジェクトのプロパティにはMaven Additionalは出ないままでした。
結局何が原因だったのかいまいちはっきりしませんでした。
Copyright (C) 2015 ymlib.com
