複数の仮想サーバと ServletContextListener?

本情報は このスレッド で出された、複数のサーバと Web アプリに関する 質問に由来するものです。

ひとつの Web アプリケーションはひとつの仮想サーバに配備しなくてはなりませんか

はい。 ServletContextListener#contextInitialized は Web アプリケーションが配備されている仮想サーバひとつに対して、一度ずつ呼び出されます。これは内部的に、コンテナが Web アプリケーションの配備されている仮想サーバひとつに対して、ひとつのサーブレットコンテキストを生成するためです。

仮想サーバのサブセットに Web アプリケーションを配備するには、 asadmin deploy コマンドの --virtualservers virtual_servers オプションを使用してください。個々の ServletContext は、それぞれのコンテキストに関連付けられたセッション状態を管理するためのセッション・マネージャを保持しています。

Web アプリケーションを複数の仮想サーバに配備した場合、Web アプリケーションへのリクエストは、リクエストに含まれるホスト名に基づき、特定のコンテキストのインスタンスにマッピングされます。なお、各コンテキストはそれぞれ独自のクラスローダを保持します。


日本語翻訳: Kana

英文 (翻訳したバージョン: 2)