事象 : アプリの画面でHTTPステータス404になる
- 環境
- Windows10 Pro バージョン1909
- Server version: Apache Tomcat/8.5.61
- Eclipse IDE for Enterprise Java Developers Version: 2020-09 (4.17.0)
EclipseでTomcatを起動してアプリのURLをたたいたら404。しかし画面を見るにTomcatが動いてはいる。
server.xmlをみたらContextのpathに「##{バージョン}-SNAPSHOT」がくっついてる!
server.xml
<!-- 省略 -->
<Context docBase="project-name" path="/project-name##2.20.0-SNAPSHOT"...省略.../>
</Host>
</Engine>
</Service>
</Server>
原因 : pom.xmlのfinalNameでproject.versionをくっつけているから
pom.xml
<!-- 省略 -->
<build>
<finalName>${project.artifactId}##${project.version}</finalName>
<!-- 省略 -->
対応 : (プロジェクト設定したくない場合)server.xmlを修正する
直にserver.xmlのContextのpathから##{バージョン}-SNAPSHOT
を削除してTomcatを再起動する。
Tomcatからプロジェクトを削除して再デプロイすると元に戻るのが難点。面倒くさい!
server.xml
<!-- 省略 -->
<Context docBase="project-name" path="/project-name"...省略.../>
</Host>
</Engine>
</Service>
</Server>
対応 : (pom.xmlを修正したくない場合)プロジェクトのContext rootを修正する
Mavenビルドすると設定が戻るのが難点
- [Project Explorer] > 対象プロジェクト選択 >
Alt + Enter
でダイアログを開く - [Web Project Settings] > [Context root] > ここが
##{バージョン}-SNAPSHOT
がくっついた状態になっている -
##{バージョン}-SNAPSHOT
を削除 > [Apply and Close]ボタンでダイアログを閉じる - [Servers]タブでTomcatからプロジェクトを削除
- Tomcatを選択して右クリック > [Clean] > 今一度デプロイしてTomcatを起動
対応 : pom.xmlのfinalNameを修正する
- pom.xmlのfinalNameから
##${project.version}
を削除 - [Project Explorer] > 対象プロジェクト選択 >
Alt + F5
でダイアログを開いてMavenビルドする - [Servers]タブでTomcatからプロジェクトを削除
- Tomcatを選択して右クリック > [Clean] > 今一度デプロイしてTomcatを起動
pom.xml
<!-- 省略 -->
<build>
<finalName>${project.artifactId}</finalName>
<!-- 省略 -->