Tomcatルートでのアプリケーションのデプロイ
1. 概要
この簡単な記事では、TomcatのルートにWebアプリケーションをデプロイする方法について説明します。
2. Tomcat展開の基本と用語
まず、Tomcatへのアプリケーションのデプロイの基本はこのガイドにあります:How to Deploy a WAR File to Tomcat。
簡単に言うと、Webアプリケーションは$CATALINA_HOME\webappsの下に配置されます。ここで、$CATALINA_HOMEはTomcatのインストールディレクトリです。
コンテキストパスは、Webアプリケーションの名前を表すサーバーのアドレスを基準にした場所を指します。
デフォルトでは、Tomcatはデプロイされたwarファイルの名前から派生します。 したがって、ファイルExampleApp.warをデプロイすると、http://localhost:8080/ExampleAppで使用できるようになります。 I. e. コンテキストパスは/ExampleAppです。
代わりにそのアプリをhttp://localhost:8080/で利用できるようにする必要がある場合は、いくつかのオプションがあります。これについては、次のセクションで説明します。
Tomcatのコンテキスト概念の詳細については、公式のTomcat documentationを参照してください。
3. アプリをROOT.warとしてデプロイする
最初のオプションは非常に簡単です:we just have to delete the default /ROOT/ folder in $CATALINA_HOME\webapps, rename our ExampleApp.war to ROOT.war, and deploy it.
私たちのアプリはhttp://localhost:8080/で利用できるようになります。
4. server.xmlでのコンテキストパスの指定
2番目のオプションは、アプリケーションのコンテキストパスをserver.xml($CATALINA_HOME\confにあります)に設定することです。
そのために、<Host>タグ内に以下を挿入する必要があります。
Note: defining the context path manually has the side effect that the application is deployed twice by default:http://localhost:8080/ExampleApp/およびhttp://localhost:8080/で。
これを防ぐには、<Host>タグにautoDeploy=”false”とdeployOnStartup=”false”を設定する必要があります。
重要:Tomcat 5の場合、このオプションは推奨されなくなりました。Tomcatを再起動しないとserver.xmlファイルを再ロードできないため、コンテキスト構成がより侵襲的になります。
5. アプリ固有のXMLファイルでコンテキストパスを指定する
server.xmlでこの問題を回避するために、3番目のオプションがあります。アプリケーション固有のXMLファイルでコンテキストパスを設定します。
したがって、次の内容で$CATALINA_HOME\conf\Catalina\localhostにROOT.xmlを作成する必要があります。
ここでは、2つのポイントは何の価値もありません。
まず、前のオプションのようにパスを明示的に指定する必要はありません。TomcatはROOT.xmlの名前からパスを取得します。
次に、server.xmlとは異なるファイルでコンテキストを定義しているため、docBaseは$CATALINA_HOME\webAppsの外側にある必要があります。
6. 結論
このチュートリアルでは、TomcatのルートにWebアプリケーションをデプロイする方法のさまざまなオプションについて説明しました。