JavaServer Pages の静的ファイルにアクセスするための Web コンテナーの構成

Web コンテナーは、アプリケーションの構成に応じて、最大 4 つまでの異なるロケーションで静的ファイルおよび JavaServer Pages (JSP) ファイルを検索します。 この検索は、インバウンド要求の処理に適したリソース、および以下の API から返される結果を見つけるために重要です。
URL ServletContext.getResource(String path)
Set ServletContext.getResourcePaths(String path) 
重要: 静的ファイルは、fileServing プロパティーが使用可能になっており、アプリケーションに /* サーブレット・マッピングが含まれていない場合にのみ検索されます。 また、JSP ファイルには、web.xml ファイルで定義されたその他のパターンに加えて、以下の拡張子を持つファイルが含まれます。
  • .jsp
  • .jspx
  • .jsw
  • .jsv
以下に、4 つのロケーションを優先される順に示します。
アプリケーションの WAR ディレクトリー
Web コンテナーは、最初に、アプリケーションの WAR ディレクトリーで要求されたリソースを検索します。 WEB-INF ディレクトリーまたは META-INF ディレクトリーに getResource() メソッドおよび getResourcePaths() メソッドを使用してアクセスすることは可能ですが、これらのディレクトリーにインバウンド要求用のリソースを配置することはできません。
フラグメント前の文書ルート
Web コンテナーは、2 番目に、アプリケーションにより定義されたフラグメント前の文書ルートを検索します。 アプリケーションの WEB-INF ディレクトリー内にある ibm-web-ext.xmi ファイルに、フラグメント前の文書ルートを定義します。 静的ファイルまたは JSP ファイルのフラグメント前の文書ルートは、以下のように定義します。
静的ファイル:<fileServingAttributes xmi:id="<user-provided name>"
 name="preFragmentExtendedDocumentRoot"
 value="<user provided value>"/>
JSP ファイル:
<jspAttributes xmi:id="<user provided name>" name="preFragmentExtendedDocumentRoot" value=<user provided value>"/> 
<user provided name> には、ディレクトリーのリストまたは jar のリスト、あるいはその両方を指定できます。以下に例を示します。
<fileServingAttributes name="extendedDocumentRoot"
      value="C:\EDR_directory,C:\my\path\to\jarEDR.jar"/>
<user provided name> にディレクトリーのリストのみが指定され、そのディレクトリーに JAR ファイルが含まれている場合、内部でそれらの JAR ファイルを検索しません。そのディレクトリーの内部では静的ファイルと JSP ファイルのみを検索します。ただし、外部では JAR ファイルの有無を検索します。jar 内に静的ファイルまたは JSP ファイルが存在する場合、その静的ファイルまたは JSP ファイルは JAR ファイルの META-INF フォルダーの中に入れてはならず (このフォルダーは制限付きフォルダーであるため)、<user provided name> に JAR ファイルへの絶対パスを含める必要があります。
重要: フラグメント前の文書ルートは、WebSphere® Application Server バージョン 9.0 の新機能です。
アプリケーションの WAR ファイル内の WEB-INF/Lib ディレクトリー下にあるフラグメントの META-INF/resources ディレクトリー
フラグメント前の文書ルートを検索した後で、Web コンテナーは Web フラグメントを検索します。 1 つの Web フラグメントが、アプリケーションの WEB-INF/lib ディレクトリー内の 1 つの JAR ファイルを構成します。 JAR は、JAR ファイル内で定義された META-INF/resources ディレクトリー内に静的リソースを含む場合があります。 Web コンテナーが META-INF/resources ディレクトリーを検索しないようにするには、com.ibm.ws.webcontainer.SkipMetaInfResourcesProcessing Web コンテナー・カスタム・プロパティーを true に設定します。 カスタム・プロパティーのデフォルト値は、false です。
com.ibm.ws.webcontainer.SkipMetaInfResourcesProcessing = true
重要: アプリケーションの WAR ファイル内の WEB-INF/Lib ディレクトリー下にあるフラグメントの META-INF/resources ディレクトリーは、WebSphere Application Server バージョン 9.0 の新機能です。
拡張文書ルート
最後に、Web コンテナーは、拡張文書ルートとして定義されたすべてのアプリケーションを検索します。 前のリリースでも使用可能であった拡張文書ルートは、アプリケーションの WEB-INF ディレクトリー内にある ibm-web-ext.xmi ファイルで定義されます。 静的ファイルまたは JSP ファイルの拡張文書ルートは、以下のように定義します。
静的ファイル:<fileServingAttributes xmi:id="<user provided name>" name="extendedDocumentRoot"
 value="<user provided value>"/>
JSP ファイル:
<jspAttributes xmi:id="<user provided name>" name="extendedDocumentRoot" value=<user provide value>"/>
com.ibm.ws.webcontainer.SkipMetaInfResourcesProcessing = true
<user provided name> には、ディレクトリーのリストまたは jar のリスト、あるいはその両方を指定できます。以下に例を示します。
<fileServingAttributes name="extendedDocumentRoot"
      value="C:\EDR_directory,C:\my\path\to\jarEDR.jar"/>
<user provided name> にディレクトリーのリストのみが指定され、そのディレクトリーに JAR ファイルが含まれている場合、内部でそれらの JAR ファイルを検索しません。そのディレクトリーの内部では静的ファイルと JSP ファイルのみを検索します。ただし、外部では JAR ファイルの有無を検索します。jar 内に静的ファイルまたは JSP ファイルが存在する場合、その静的ファイルまたは JSP ファイルは JAR ファイルの META-INF フォルダーの中に入れてはならず (このフォルダーは制限付きフォルダーであるため)、<user provided name> に JAR ファイルへの絶対パスを含める必要があります。
重要: com.ibm.ws.webcontainer.ServeWelcomeFileFromExtendedDocumentRoot カスタム・プロパティーを true に設定すると、静的ファイルの拡張文書ルートから静的なウェルカム・ページを提供できるようになります。 カスタム・プロパティーのデフォルト値は、false です。
com.ibm.ws.webcontainer.ServeWelcomeFileFromExtendedDocumentRoot = true
com.ibm.ws.webcontainer.ServeWelcomeFileFromExtendedDocumentRoot プロパティーを true に設定すると、 Web コンテナーは、静的ファイルの拡張文書ルートで、有効な URL の一部を含む要求を処理するための静的な「ようこそ」ファイルを検索します。 例えば、要求でアプリケーション・コンテキストのみが指定されており、「ようこそ」ファイルが index.html として指定されている場合、index.html が静的ファイル拡張文書から提供される場合には、このプロパティーを設定する必要があります。
com.ibm.ws.webcontainer.enablepartialurltoextendeddocumentroot = true
デフォルト値は false です。

このプロパティーを true に設定すると、Web コンテナーは、インバウンド要求が有効な部分 URL に対するものであるかどうかを判別する際に、静的ファイル拡張文書ルートのコンテンツを組み込みます。 例えば、要求で、末尾が /<application context>/<text> である URL が指定され、<text> がサーブレットや静的ファイルにマップされない場合、Web コンテナーは <text> がアプリケーションの有効なディレクトリーである場合にのみ、この URL を有効な部分 URL と見なします。 結果的に、ディレクトリー <text> が静的ファイル拡張文書ルートにしか存在しない場合、URI が有効な部分 URI と見なされるようにするには、このプロパティーを設定する必要があります。

重要: これらのプロパティーは、静的ファイルのフラグメント前の文書ルートには必要ありません。 また、有効な部分 URL を判別する際に、Web コンテナーは JSP のフラグメント前の文書ルートおよび拡張文書ルートを考慮しません。

トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rweb_jsp_staticfile
ファイル名:rweb_jsp_staticfile.html