TomcatはMavenプロジェクトのweb.xmlをEclipseの間違ったフォルダに展開します
問題
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”ファイルを正しい場所に配置してください。