1. 序章

このチュートリアルでは、一般的なEclipseエラーについて説明します。 web.xmlがなく、 trueに設定されています 「、Webアプリケーションの作成中に得られるものです。

2. Eclipseエラー

Java Webアプリケーションでは、web.xmlがデプロイメント記述子の標準名です。

Mavenを使用してWebアプリケーションを作成することも、Eclipseを使用して動的Webプロジェクトを作成することもできます。 Eclipseは、 WEB-INF/ディレクトリーの下にデフォルトのデプロイメント記述子web.xmlを作成しません。

Java EE 6+仕様では、アノテーションに置き換えることができるため、デプロイメント記述子を強調しないようにしています。 ただし、下位バージョンでは引き続き必要です。

The failOnMissingWebXml プロパティは、のプロパティの1つです。 Apache Maven 戦争プラグイン、 org.apache.maven.plugins:maven-war-plugin。 このプラグインのデフォルト値は真実バージョン<3.1.0および間違いそれ以降のバージョンの場合。

これは、バージョン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 。 前に述べたように、プラグインのバージョン3.1.0より前のfailOnMissingWebXmlのデフォルト値はtrueです。

pom.xmlmaven-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にあります。