既定の Web アプリケーションの使用

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 に応答します。

http://hostname/resource

既定の 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-appdefault-app という名前の Web アプリケーションが含まれています。

既定の 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 が返されます。

default-app Web アプリケーションの使用

JRun には、default JRun サーバーで使用する、default-app という既定のアプリケーションがあります。このアプリケーションは、ディレクトリ JRun/servers/default/default-app にあります。

JRun をインストールすると、default-app には次のような既定のアプリケーションのすべての特徴が加わります。

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 のドキュメント ルート、つまり既定のアプリケー ションのドキュメント ルートは、JRun のホーム ディレクトリ/servers/default/ default-app です。


既定の Web アプリケーションのクラスパス

すべての Web アプリケーションのクラスパスについては、"Web アプリケーション クラスパスの決定"のセクションで説明しています。このセクションで説明したクラスパスだけでなく、既定の Web アプリケーションのクラスパスには、{jrun.rootdir}/servlets というパスも追加されています。これは、既定の Web アプリケーションが、このディレクトリ内のすべての .class または JAR ファイルにアクセスできることを意味します。

{jrun.rootdir}/servlets ディレクトリは再ロード可能です。これは、JRun はこのディレクトリ内の .class および JAR ファイルの依存チェックを行うことを意味します。対応するサーブレットが最後にロードされた後にファイルが変更されていれば、サーブレットが再ロードされます。