問題

Eclipseのデバッグセッション中、「web.xml」は常に間違ったフォルダに展開されます。それはいつも手動のリンクによって起こります://maven/how-to-convert-java-web-project-to-maven-project/[Java WebプロジェクトをMavenのプロジェクトに移行または変換しました]

Eclipseのワークスペースフォルダ構造を参照してください。EclipseのTomcatは、間違ったフォルダに “web.xml”をデプロイして、Webアプリケーション全体の実行を失敗させます。

E:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\
wtpwebapps\serlvetdemo\WEB-INF\classes\WEB-INF\web.xml

正しい “web.xml”の場所は、

E:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\
wtpwebapps\serlvetdemo\WEB-INF\web.xml

解決策

実際にTomcatのデプロイメントパスを制御する設定ファイルがEclipseにあります。名前は ”

org.eclipse.wst.common.component

“です。

<!-- This is org.eclipse.wst.common.component original content -->
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="serlvetdemo">
        <wb-resource deploy-path="/" source-path="/WebContent"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
        <property name="java-output-path"/>
        <property name="context-root" value="servletdemo"/>
    </wb-module>
</project-modules>

デプロイメントパスが間違っていて、Mavenのプロジェクトで ”

/WebContent

“が不要になった場合は、次のように ”

src/main/webapp

“に置き換えてください

<!-- This is org.eclipse.wst.common.component modified content -->
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="serlvetdemo">
        <wb-resource deploy-path="/" source-path="/src/main/webapp"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
        <property name="java-output-path"/>
        <property name="context-root" value="servletdemo"/>
    </wb-module>
</project-modules>

EclipseとTomcatのプラグインが正常に動作し、 “web.xml”ファイルを正しい場所に配置してください。

思考…​.

これは、手動での移行やJava WebプロジェクトからMavenのプロジェクトへの変換によって発生します。Mavenが将来的に移行ツールを使用できるようになることを願っています。