1. 概要

この簡単な記事では、TomcatのルートにWebアプリケーションをデプロイする方法について説明します。

2. Tomcatデプロイメントの基本と用語

まず、アプリケーションをTomcatにデプロイするための基本は、このガイドにあります:WARファイルをTomcatにデプロイする方法

簡単に言うと、Webアプリケーションは $ CATALINA_HOME \ webapps の下に配置されます。ここで、 $CATALINA_HOMEはTomcatのインストールディレクトリです。

コンテキストパスは、Webアプリケーションの名前を表すサーバーのアドレスを基準にした場所を指します。

デフォルトでは、Tomcatはデプロイされたwarファイルの名前から派生します。 したがって、ファイル ExampleApp.war をデプロイすると、 http:// localhost:8080 /ExampleAppで利用できるようになります。 私。 e。 コンテキストパスは/ExampleAppです。

そのアプリをhttp:// localhost:8080 / で利用できるようにする必要がある場合は、いくつかのオプションがあります。これについては、次のセクションで説明します。

Tomcatのコンテキスト概念の詳細については、公式のTomcatドキュメントを参照してください。

3. アプリをROOT.warとしてデプロイする

最初のオプションは非常に簡単です。$CATALINA_HOME\webappsのデフォルトの/ROOT/フォルダーを削除し、ExampleApp.warの名前をROOT.warに変更して、デプロイするだけです。

このアプリは、 http:// localhost:8080/で利用できるようになります。

4. server.xmlでのコンテキストパスの指定

2番目のオプションは、 server.xml $ CATALINA_HOME \ conf にあります)でアプリケーションのコンテキストパスを設定することです。

以下を挿入する必要がありますそのためのタグ:

<Context path="" docBase="ExampleApp"></Context>

注:コンテキストパスを手動で定義すると、アプリケーションがデフォルトで2回デプロイされるという副作用があります http:// localhost:8080 / ExampleApp/ http:// localhost:8080/

これを防ぐには、 autoDeploy =” false” deployOnStartup =” false” の中に鬼ごっこ:

<Host name="localhost" appBase="webapps" unpackWARs="true"
  autoDeploy="false" deployOnStartup="false">
    <Context path="" docBase="ExampleApp"></Context>

    <!-- Further settings for localhost -->
</Host>

重要:Tomcat 5: server.xml ファイルはTomcatを再起動せずに再ロードできないため、コンテキスト構成がより侵襲的になるため、このオプションは推奨されなくなりました。

5. アプリ固有のXMLファイルでのコンテキストパスの指定

server.xml でこの問題を回避するために、3番目のオプションがあります。アプリケーション固有のXMLファイルでコンテキストパスを設定します。

したがって、 $ CATALINA_HOME \ conf \ Catalina \localhostROOT.xmlを次の内容で作成する必要があります。

<Context docBase="../deploy/ExampleApp.war"/>

ここでは2つのポイントは何の価値もありません。

まず、前のオプションのようにパスを明示的に指定する必要はありません。TomcatはROOT.xmlの名前からパスを取得します。

次に、 server.xml とは異なるファイルでコンテキストを定義しているため、docBase$CATALINA_HOME \webAppsの外部にある必要があります。

6. 結論

このチュートリアルでは、TomcatのルートにWebアプリケーションをデプロイする方法のさまざまなオプションについて説明しました。