サンプル集 |
■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