Tomcatにアプリケーションを配置すると、webapps配下に作成したディレクトリの名前で、コンテキストパスが付いてしまいます。
ローカルのTomcatに、hogehoge.warをデプロイした場合、こんな感じ
http://localhost:8080/hogehoge/…でアクセス
これだと困るとか、見栄えが良くないとかで、http://localhost:8080/…で、アクセスできるように変えたい場合があります。http://localhost:8080/hogehoge/…でアクセス
いくつか方法はありますが、簡単に対応するには「ROOT」ディレクトリにアプリケーションをデプロイすることです。
ROOTディレクトリへのデプロイ
warファイルをデプロイしたい場合
warファイルの名前を変えて、webappsディレクトリに放り込みます。
- [CATALINA_HOME]/webappsディレクトリにあるROOTディレクトリを削除。(どこかに退避)
- デプロイするwarファイルの名前を、「ROOT.war」にする。
- 名前を変えたwarファイル「ROOT.war」を、[CATALINA_HOME]/webappsディレクトリに置く。
- Windowsの場合:[CATALINA_HOME]/bin/startup.batでTomcatを起動。
Linuxの場合:[CATALINA_HOME]/bin/startup.shでTomcatを起動。 - ためしに、http://localhost:8080/xxxxにアクセスしてみる。
ファイルを直接デプロイしたい場合
ROOTディレクトリにデプロイしたいアプリケーションを放り込みます。
- [CATALINA_HOME]/webappsディレクトリにあるROOTディレクトリの中身をすべて削除。(どこかに退避)
- デプロイしたいアプリケーションのディレクトリを丸ごと、ROOTディレクトリに入れる。
- Windowsの場合:[CATALINA_HOME]/bin/startup.batでTomcatを起動。
Linuxの場合:[CATALINA_HOME]/bin/startup.shでTomcatを起動。 - ためしに、http://localhost:8080/xxxxにアクセスしてみる。
[CATALINA_HOME]
Tomcatをインストールしたルートパスです。
Tomcatをインストールしたルートパスです。
パスが変わると起こるありがちな問題
パスが変わると、画像ファイルとかが見えなくなったりしますw
相対パスでソース等を直接カキカキしている皆さん:たぶん大丈夫です。良かったですね♪
絶対パスでソース等を直接カキカキしている皆さん:たぶんダメです(; ・`д・´)
絶対パスで指定したい場合、HttpServletRequest#getContextPath()を使うと良い感じです。
ROOTアプリケーションで、コンテキストパスを取得すると、””(空文字列)が返ります。
HttpServletRequest#getContextPath()等、パスの取得方法は、こちら(↓)を見てくださいませ。