1 つの JRun サーバーで、複数の Web アプリケーションがサポートされます。どのアプリケーションが要求に対応するのか JRun が認識できるように、これらの各アプリケーションは異なる URL にマッピングされます。
Web アプリケーションは、URL にアプリケーション名が含まれている次のような URL にマッピングされることもあります。
http://hostname/app1/app1_resource
http://hostname/app2/app2_resource
この例では、http://hostname/app1/ で始まる URL は app1 内のリソースを参照し、http://hostname/app2/ で始まる URL は app2 内のリソースを参照します。このアプリケーションのルート ディレクトリは、アプリケーション ファイルを提供するためのドキュメント ルートとして機能します。たとえば、Web アプリケーションが C:
¥apps
¥app1
にある場合、既定のトップ ページ ファイルの場所はC:
¥apps
¥app1
¥index.html
になります。このファイルは、 http://hostname/app2/index.html のURLを使用してクライアントに提供できます。
ただし、このアプリケーションのマッピング規則には 1 つの例外があります。既定の Web アプリケーションにはこの規則は当てはまりません。既定の Web アプリケーションは、"/" または "//hostname/" のいずれかにマッピングされます。既定のアプリケーションは、次の形式の URL に応答します。
/
" または "//hostname/
" にマッピングされます。
JRun では 最も限定的な参照から最も広範囲の参照の順に URL が解決されます。 ある URL にマッピングされるほかのリソースが見つからない場合は、常に既定の アプリケーションを使用して URL が解決されます。
既定のアプリケーションでは、Web サーバーのドキュメント ルート ディレクトリ
の JSP やほかのサーバー側スクリプトを自動的に使用します。たとえば、IIS Web
サーバーを使用している場合は通常、¥inetpub
¥wwwroot
がドキュメント ルートに
なります。既定の Web アプリケーションでは、このディレクトリをドキュメント
ルートとして使用するため、JSP やほかのサーバー側スクリプトを
¥inetpub
¥wwwroot
に配置できます。
JRun/servlets
が含まれます。 旧バージョンの JRun では、開発者が、このディレクトリに Java サーブレットの
.class
ファイルを配置していました。JRun/servlets
を既定のアプリケーション
のクラスパスに含めることによって、既定のアプリケーションに旧バージョンの
JRun との下位互換性を持たせることができます。既定では、このディレクトリが
ほかの Web アプリケーションで使用されることはありません。
既定の Web アプリケーションを利用する主な理由の 1 つは、旧バージョンの JRun および Java サーブレット API との下位互換性を持たせることです。これによって、既存の JRun アプリケーションからこのバージョンの JRun へのアップグレードが簡単に行えます。旧バージョンの JRun では、開発者が JSP やほかのサーバー側スクリプトを Web サーバーのドキュメント ルート ディレクトリに配置し、Java サーブレットの .class
ファイルを {jrun root dir}/servlets
ディレクトリに配置していました。
JRun サーバーに接続されている各 Web サーバーには、関連する既定の Web アプリケーションが含まれています。たとえば、default JRun サーバーには、ディレクトリ {jrun root dir}/servers/default/default-app
にdefault-app
という名前の Web アプリケーションが含まれています。
次に、既定の Web アプリケーションのリソースに対応する URL の例を示します。
http://hostname/resource
JRun では 最も限定的な参照から最も広範囲の参照へと URL が解決されます。この場合、URL に一致するアプリケーションは既定のアプリケーションだけなので、既定のアプリケーションがこの要求を処理します。JRun が URL を解決する方法の詳細については、第 6 章を参照してください。
JRun は、リソース名が一致するリソースを、既定のアプリケーションのルート ディレクトリ (通常は、Web サーバーのドキュメント ルート) から検索します。リソースが見つかると、そのリソースが返されます。JSP または Java サーブレットの場合、リソースを返すことは、JSP や Java サーブレットを処理して、その処理結果をクライアントに返すことを意味します。
Web アプリケーションで URL に対応するリソースが見つからない場合、JRun は Web サーバーに処理の要求を返します。たとえば、クライアントが次の要求を発行したとします。
http://localhost/index.htm
"/" は既定のアプリケーションと一致しますが、index.htm
に対応するサーブレットのマッピングが既定のアプリケーションにない場合、JRun から Web サーバーに制御が返されます。その後、Web サーバーはドキュメント ルートからクライアントにファイル index.htm
が返されます。
JRun には、default JRun サーバーで使用する、default-app
という既定のアプリケーションがあります。このアプリケーションは、ディレクトリ JRun/servers/default/default-app
にあります。
JRun をインストールすると、default-app
には次のような既定のアプリケーションのすべての特徴が加わります。
JRun/servlets
が含まれます。このため、このディレクトリにサーブレット .class
ファイルを配置できます。
default-app
によって、最初に Web アプリケーションを作成しなくても、Java サーブレット、JSP、および EJB の開発を開始できます。
Web アプリケーションに対して追加する場合と同じ規則を使用して、コンテンツを default-app
に追加します。Web アプリケーションへのリソースの追加の詳細については、"Web アプリケーション コンポーネントの追加"を参照してください。
"Web アプリケーションのディレクトリ構造"で説明しているように、既定のアプリケーションでは、ほかのアプリケーションと同じディレクトリ構造を使用します。既定のアプリケーションのディレクトリ構造における唯一の違いは、既定のアプリケーションは、独自のドキュメント ルート ディレクトリではなく、アプリケーション ルート ディレクトリとして Web サーバーのドキュメント ルート ディレクトリを使用する点です。
既定のアプリケーションでは、Web サーバーのドキュメント ルート ディレクトリを使用して、Web サーバーのドキュメント ルートの JSP やほかのサーバー側スクリプトを操作できます。この場合、既定のアプリケーションでは、WEB-INF
の下にある .class
および JAR ファイル以外のリソースについては、独自のルート ディレクトリを参照しません。
メモ インストールすると、JRun は default JRun サーバー上で JRun Web サーバー (JWS) を
起動するように設定されます。JWS のドキュメント ルート、つまり既定のアプリケー
ションのドキュメント ルートは、 |
すべての Web アプリケーションのクラスパスについては、"Web アプリケーション クラスパスの決定"のセクションで説明しています。このセクションで説明したクラスパスだけでなく、既定の Web アプリケーションのクラスパスには、{jrun.rootdir}/servlets
というパスも追加されています。これは、既定の Web アプリケーションが、このディレクトリ内のすべての .class
または JAR ファイルにアクセスできることを意味します。
{jrun.rootdir}/servlets
ディレクトリは再ロード可能です。これは、JRun はこのディレクトリ内の .class
および JAR ファイルの依存チェックを行うことを意味します。対応するサーブレットが最後にロードされた後にファイルが変更されていれば、サーブレットが再ロードされます。