Eclipseエラー:web.xmlが欠落しており、failOnMissingWebXmlがtrueに設定されています
1. 序章
このチュートリアルでは、一般的なEclipseエラーについて説明します。 web.xmlがなく、
2. Eclipseエラー
Java Webアプリケーションでは、web.xmlがデプロイメント記述子の標準名です。
Mavenを使用してWebアプリケーションを作成することも、Eclipseを使用して動的Webプロジェクトを作成することもできます。 Eclipseは、 WEB-INF/ディレクトリーの下にデフォルトのデプロイメント記述子web.xmlを作成しません。
Java EE 6+仕様では、アノテーションに置き換えることができるため、デプロイメント記述子を強調しないようにしています。 ただし、下位バージョンでは引き続き必要です。
The failOnMissingWebXml プロパティは、のプロパティの1つです。 Apache Maven 戦争プラグイン、
これは、バージョン3.1.0より前の maven-war-plugin を使用していて、 web.xml ファイルが存在しない場合、それをwarファイルは失敗します。
3. web.xmlを使用する
web.xml デプロイメント記述子がまだ必要なすべての場合、Eclipseでweb.xmlを簡単に生成できます。
- Webプロジェクトを右クリックします
- メニューのJavaEEツールにカーソルを合わせます
- サブメニューからGenerateDeployment DescriptorStubを選択します
出来上がり! web.xmlファイルはWEB-INF/ディレクトリの下に生成されます。
4. web.xmlなし
ほとんどの場合、web.xmlファイルはまったく必要ありません。 プロジェクトに空白のweb.xmlファイルを保持する代わりに、ファイルの作成を完全にスキップできます。 幸い、使用している maven-war-plugin のバージョンに応じて、2つの簡単なアプローチがあります。
4.1. 3.1.0より前のmaven-war-pluginの使用
Mavenプロジェクトのすべてのプラグインを
pom.xmlでmaven-war-pluginを宣言し、プロパティfailOnMissingWebXmlを明示的にfalseに設定しましょう。
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
4.2. maven-war-plugin3.1.0以降の使用
maven-war-plugin のバージョンをアップグレードすることで、プロパティを明示的に設定することを回避することもできます。 プロパティfailOnMissingWebXmlのデフォルト値は、maven-war-pluginバージョン3.1.0以降ではfalseです。
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
</plugin>
5. 結論
この記事では、 web.xml エラーが欠落している理由と、それを修正するための複数のアプローチについて説明しました。
いつものように、この例はGitHubのにあります。