15

私はTomcatを使用してアプリケーションをデプロイしていますが、複数のコンテキストパスをサーバー化するための単一の戦争としてデプロイしたいと思います。

現在、app1.warとapp2.warがありますが、どちらも同じ内容で、http:///app1とhttp:///app1.warからアクセスする場合は名前が異なります。しかし、これを実行したいのですが、app.warをデプロイし、app1とapp2の両方のコンテキストパスでアクセスします。Tomcatで行うことは可能ですか?これから私を助けてください

4

1 に答える 1

24

これはいくつかの方法で行うことができます。この方法が最も簡単だと思います。

  1. WARファイルをwebapps/自動デプロイディレクトリの外に移動します
  2. META-INF/context.xmlWARファイルから抽出します。WARにファイルがない場合は、META-INF/context.xmlファイルだけを使用<Context />してください。
  3. このファイルをとのconf/[service]/[host]/両方としてTomcatのディレクトリにコピーします。([サービス]は通常「Catalina」であり、[host]は仮想ホストの名前です。デフォルトのTomcat構成では、ホスト名は常に「localhost」です)。app1.xmlapp2.xml
  4. app1.xmlとの両方を編集し、要素の属性を、手順1で移動したWARファイルを指すようにapp2.xml設定します。docBase<Context>
  5. Tomcatを再起動します

これにより、単一の物理WARファイルとそこからデプロイされた複数のコンテキストが提供されます。

Tomcatはこの構成をサポートしていますが、これには反対することをお勧めします。ディスクスペースは安価で、実行時に何も変更されず(メモリ内にすべてのコピーが2つあります)、さまざまなWARファイルをさまざまなコンテキストにデプロイしたり更新したりする柔軟性が失われます。両方のコンテキストの構成を変更せずに、それらを個別に。

私のアドバイスが必要な場合は、重複したWARファイルに固執してください。

于 2012-07-31T01:34:41.603 に答える