Oracle Application Server Containers for J2EE サーブレット開発者ガイド 10gリリース2(10.1.2) B15633-02 |
|
この章では、サーブレットとWebサイトを構成する、OC4J構成ファイルの要素および属性について説明します。次の項が含まれます。
この章での構成ファイルおよびその要素と属性に関する説明は、OC4Jスタンドアロン開発環境を前提としています。Enterprise Managerを使用するOracle Application Server環境では、構成は、Application Server ControlコンソールのWebモジュール・ページを使用して行われるため、ファイルとそのプロパティの多くは、ユーザーには表示されません。Oracle Application ServerでEnterprise Managerを使用して、本番アプリケーションの構成とデプロイを行う場合の考慮事項は、第7章「Enterprise Managerを使用した構成」を参照してください。
注意
次の項では、global-web-application.xml
およびorion-web.xml
の構成ファイルの詳細を説明します。
これらのファイルの概要は、「OC4JおよびJ2EEのWebディスクリプタ」を参照してください。
この項では、global-web-application.xml
ファイルおよびorion-web.xml
ファイルの要素と属性について説明します。
この項の要素の説明は、global-web-application.xml
またはアプリケーション固有のorion-web.xml
構成ファイルのいずれかに適用可能です。global-web-application.xml
ファイルでグローバル・アプリケーションを構成してデフォルトを設定し、必要に応じて、orion-web.xml
ファイルで特定のアプリケーションのデプロイ用にこれらのデフォルトをオーバーライドします。
WebアプリケーションのOC4J固有の構成を指定するためのルート要素です。
<orion-web-app>
のサブ要素は次のとおりです。
<classpath> <context-param-mapping> <mime-mappings> <virtual-directory> <access-mask> <cluster-config> <servlet-chaining> <request-tracker> <session-tracking> <resource-ref-mapping> <env-entry-mapping> <security-role-mapping> <ejb-ref-mapping> <expiration-setting> <jazn-web-app> <web-app-class-loader> <authenticate-on-dispatch> <web-app>
<orion-web-app>
の属性は次のとおりです。
default-buffer-size
: サーブレットのレスポンスに関する出力バッファのデフォルトのサイズを、バイト単位で指定します。デフォルトは、2048
です。
default-charset
: デフォルトで使用するISOキャラクタ・セットを指定します。デフォルトは、iso-8859-1
です。
deployment-version
: このWebアプリケーションがデプロイされているOC4Jのバージョンを示します。この値が現在のバージョンと一致しない場合、アプリケーションが再度デプロイされます。これは内部サーバー値のため、変更しないでください。
development
: 開発時の便宜のために設けられたフラグです。development
がtrue
に設定されている場合、特定のディレクトリについて、サーブレット・ソース・ファイルに更新があるかどうかがOC4Jサーバーによってチェックされます。ソース・ファイルが前回のリクエスト以降に変更されていると、次のリクエスト時に、OC4Jによってサーブレットが再コンパイルされ、Webアプリケーションが再デプロイされ、サーブレットとすべての依存クラスが再ロードされます。
対象のディレクトリは、source-directory
属性の設定により判断されます(次の説明を参照してください)。development
でサポートされている値は、true
およびfalse
(デフォルト)です。
source-directory
: development
属性がtrue
に設定されている場合は、source-directory
設定で指定された場所で、自動コンパイルの対象となるサーブレット・ソース・ファイルが検索されます。デフォルトは、存在する場合は/WEB-INF/src
で、それ以外の場合は/WEB-INF/classes
です。
directory-browsing
: 「/
」で終わるURLのディレクトリのブラウズの許可を指定します。サポートされている値は、allow
およびdeny
(デフォルト)です。
次のような状況を仮定します。
このような状況でdirectory-browsing
がallow
に設定されている場合、「/
」で終わるURLについては、ユーザーのブラウザに、対応するディレクトリの内容が表示されます。
同じ状況でdirectory-browsing
がdeny
に設定されている場合は、「/
」で終わるURLはエラーとなり、ディレクトリの内容は表示されません。
アプリケーション・ルート・ディレクトリに、定義された初期ファイルまたはindex.html
ファイルがある場合、そのファイルの内容はdirectory-browsing
設定にかかわらず表示されます。
file-modification-check-interval
: HTMLファイルなどの静的ファイルに適用されます。ファイル・チェックを有効化する期間をミリ秒単位で指定します。前回のチェック以降、この期間内であれば、別途チェックを行う必要はありません。0(ゼロ)または負の数値を指定すると、常にチェックが発生します。デフォルトは、1000
です。パフォーマンス上の理由から、本番環境では非常に大きな値(たとえば、1000000
)を指定することをお薦めします。
jsp-print-null
: このフラグをfalse
に設定すると、JSPページからのNULL出力に対して、デフォルトのnull文字列ではなく、空の文字列が出力されます。デフォルトは、true
です。
jsp-timeout
: 整数値を秒単位で指定します。この時間を経過すると、リクエストされなかったJSPページがメモリーから削除されます。これによって、頻繁にコールされないページがある場合、リソースが解放されます。デフォルト値は0(ゼロ)で、タイムアウトは発生しません。
jsp-cache-directory
: JSPキャッシュ・ディレクトリを指定します。このディレクトリは、JSPトランスレータからの出力ファイルに対するベース・ディレクトリとして使用されます。また、アプリケーション・レベルのTLDキャッシュのベース・ディレクトリとしても使用されます。デフォルト値は./persistence
で、これはアプリケーションのデプロイメント・ディレクトリからの相対パスです。
jsp-cache-tlds
: このフラグは、永続TLDキャッシュのJSPページにおける有効性を示します。TLDキャッシュは、TLDファイルが指定されているタグ・ライブラリの場所にあるグローバル・レベル、およびTLDファイルがWEB-INF
ディレクトリの下にあるアプリケーション・レベルの両方で実装されます。すべてのアプリケーション・ファイルからTLDファイルを検索する場合は、true
またはon
(デフォルト)に設定します。standard
に設定すると、/WEB-INF
および/WEB-INF/classes
または/WEB-INF/lib
以外のサブディレクトリのみでTLDファイルが検索されます。false
またはoff
に設定すると、この機能は無効になります。指定されている場所はjsp-taglib-locations
属性に基づきます。
jsp-taglib-locations
: 永続TLDキャッシュがJSPページで使用可能になっている場合(jsp-cache-tlds
属性で指定)、jsp-taglib-locations
を使用して、指定の場所として使用する1つ以上のディレクトリを、セミコロン区切りのリストにして指定できます。タグ・ライブラリのJARファイルをこれらの場所に置いて、複数のJSPページとWebアプリケーション間で共有したり、TLDキャッシュに使用することができます。
ディレクトリの絶対パスまたは相対パスは、任意の組合せで指定できます。相対パスは、ORACLE_HOME
が定義されている場合はORACLE_HOME
の下から、ORACLE_HOME
が定義されていない場合は(OC4Jプロセスが起動された)カレント・ディレクトリの下からになります。デフォルト値は次のとおりです。
または
simple-jsp-mapping
: *.jsp
がアプリケーションに影響を与えるWebディスクリプタ(global-web-application.xml
、web.xml
およびorion-web.xml
)の<servlet>
要素のoracle.jsp.runtimev2.JspServlet
フロントエンドJSPサーブレットのみにマップされている場合は、このフラグをtrue
に設定します。これにより、JSPページのパフォーマンスが向上します。デフォルトの設定は、false
です。
enable-jsp-dispatcher-shortcut
: デフォルトではtrue
に設定します。特に、simple-jsp-mapping
属性もtrue
に設定している場合は、OC4J JSPコンテナのパフォーマンスが大幅に向上します。これは、多数のjsp:include
文を含むJSPページに特に当てはまります。ただし、true
の設定では、web.xml
の<jsp-file>
要素を使用してJSPファイルを定義する場合、それらのJSPファイルに対応した<url-pattern>
の仕様があることが前提になります。
persistence-path
: サーバーの再起動またはアプリケーションの再デプロイ中に、サーブレットのHttpSession
オブジェクトがOC4Jによって永続的に保存される場所を示します。相対パスを指定します。これは、application-deployments
ディレクトリの下にあるOC4Jの一時記憶領域からの相対パスです。デフォルト値はありません。値が定義されていない場合、再起動または再デプロイ中にセッション・オブジェクトの永続性は失われます。次に例を示します。
<orion-web-app ... persistence-path="persistdir" ... > ... </orion-web-app>
この機能を有効にするには、セッション・オブジェクトは、シリアライズ可能(直接または間接的にjava.io.Serializable
インタフェースを実装)、またはリモート可能(直接または間接的にjava.rmi.Remote
インタフェースを実装)である必要があります。
<orion-web-app>
要素の<cluster-config>
サブ要素に基づいてOC4Jクラスタリングが有効な場合、persistence-path
属性は無視されます。
servlet-webdir
: サーブレットを起動するためのパスをクラス名で指定します。URL内のこのパス以後に表示される名前は、すべてクラス名とみなされ、必要に応じて、パッケージが含まれます。
この機能は通常、開発時およびテスト時にOC4Jスタンドアロン環境で使用されます。デプロイ時は、標準のweb.xml
を使用してコンテキスト・パスおよびサーブレット・パスを定義してください。
次に示すのは、クラス名によるサーブレットの起動例です。設定をservlet-webdir="/servlet/"
と仮定します。
http://www.example.com:8888/servlet/foo.bar.SessionServlet
重要
「OC4J開発時におけるクラス名によるサーブレットの起動」および「その他のセキュリティに関する考慮事項」も参照してください。 |
temporary-directory
: サーブレットおよびJSPページによりスクラッチ・ファイル用に使用される一時ディレクトリのパスです。パスは、絶対パスまたはデプロイメント・ディレクトリからの相対パスのいずれかにできます。デフォルトの設定は、./temp
です。サーブレットは、一時ディレクトリを使用する場合があります。たとえば、ユーザーがフォーム(情報がデータベースに書き込まれる前の、仮または短期間の格納用)にデータを入力するときに、ディスクに情報を書き込むために使用します。
次に、特定のディレクトリは、サーブレット・コンテキストから再コールされます。このコンテキストは、属性javax.servlet.context.tempdir
により使用できます。次に例を示します。
File file = (File)application.getAttribute("javax.servlet.context.tempdir");
java.io.File
オブジェクトが戻されます。このオブジェクトから、ディレクトリ情報およびコンテンツを取得できます。
この要素を使用して、Webアプリケーションのクラスロードに対する追加コードの場所(ライブラリ・ファイル、または個別のクラス・ファイルの場所のいずれか)をOC4Jに通知します。
<classpath>
の属性は次のとおりです。
path
: カンマまたはセミコロンで区切られた、1つ以上の場所を指定できます。場所は、次のいずれかになります。
いずれの場合も、絶対パス、または構成ファイルのある位置(global-web-application.xml
またはorion-web.xml
の該当するもの)からの相対パスを使用できます。
ディレクトリ・パスを指定した場合、クラスローダーでは、指定したディレクトリ内にある個別のクラス・ファイルのみが認識されます。JARまたはZIPファイルは認識されません(個別に指定されている場合を除く)。
たとえば、orion-web.xml
が次のように設定されていると仮定します。
<classpath path=/abc/def/lib1.jar,/abc/def/zip1.jar,/abc/def,mydir />
クラスローダーでは、次が認識されます。
この要素は、orion-web.xml
内で、web.xml
ファイルのcontext-param
設定の値をオーバーライドします。EARの構成にデプロイ固有の値を直接反映しないようにするために使用します。タグのボディに新しい値を指定します。
<context-param-mapping>
の属性は次のとおりです。
使用するMIMEマッピングが入っているファイルのパスを定義します。
<mime-mappings>
の属性は次のとおりです。
たとえば、UNIXシステム上のシンボリック・リンクと理論的には類似した方法で動作し、静的コンテンツに仮想ディレクトリ・マッピングを追加します。仮想ディレクトリを使用すると、WebアプリケーションのWARファイルには物理的に存在しないアプリケーションに使用できる、実際のドキュメント・ルート・ディレクトリのコンテンツを作成できます。これは、たとえば企業全体のエラー・ページを複数のWARファイルにリンクさせる際に役立ちます。
<virtual-directory>
の属性は次のとおりです。
real-path
: 実際のパス。UNIXの場合は/usr/local/realpath
、Windowsの場合はC:¥testdir
など。
virtual-path
: 指定された実際のパスにマップする仮想パス。
このアプリケーションにオプションのアクセス・マスクを指定するには、<access-mask>
のサブ要素を使用します。クライアントをフィルタするには、<host-access>
サブ要素でホスト名またはドメインを使用するか、<ip-access>
サブ要素でIPアドレスとサブネットを使用します。両方を使用することも可能です。
<access-mask>
のサブ要素は次のとおりです。
<host-access> <ip-access>
<access-mask>
の属性は次のとおりです。
default
: <host-access>
または<ip-access>
サブ要素で識別されないクライアントからのリクエストを、許可するかどうかを指定します。サポートされている値は、allow
(デフォルト)およびdeny
です。これらのサブ要素で識別されるクライアントからのリクエストを許可するかどうかを指定するには、<host-access>
および<ip-access>
サブ要素に別のmode
属性を使用します。
<access-mask>
のこのサブ要素は、アクセスの許可または拒否の対象となるホスト名またはドメインを指定します。
<host-access>
の属性は次のとおりです。
domain
: ホストまたはドメインを指定します。
mode
: 特定のホストやドメインからのアクセスを許可するか、または拒否するかを指定します。サポートされている値は、allow
(デフォルト)またはdeny
です。
<access-mask>
のこのサブ要素は、アクセスの許可または拒否の対象となる、IPアドレスおよびサブネット・マスクを指定します。
<ip-access>
の属性は次のとおりです。
ip
: 32ビット値のIPアドレスを指定します(例: 123.124.125.126
)。
netmask
: 対応するサブネット・マスクを指定します(例: 255.255.255.0
)。
mode
: 特定のIPアドレスおよびサブネット・マスクからのアクセスを許可するか、または拒否するかを指定します。サポートされている値は、allow
(デフォルト)またはdeny
です。
この要素は、OC4Jクラスタリングを使用する場合のみ使用します。それ以外の場合は、削除またはコメントアウトします。クラスタリングされたアプリケーションでは、クラスタ・アイランド内のクラスタ間で、HTTPセッション・データがレプリケートされます。HTTPセッション・データのオブジェクトは、セッションのレプリケーションの動作に対してシリアライズ可能(直接的または間接的にjava.io.Serializable
インタフェースを実装)、またはリモート可能(直接的または間接的にjava.rmi.Remote
インタフェースを実装)である必要があります。
クラスタリングに関する一般的な情報は、『Oracle Application Serverパフォーマンス・ガイド』を参照してください。
<cluster-config>
の属性は次のとおりです。
host
: クラスタ・データの送受信を行う、マルチキャスト用ホストまたはIP。デフォルトは、230.230.0.1
です。
id
: クラスタ内で、クラスタ自身を識別するためのクラスタ・ノードのID(番号)。デフォルトは、ローカル・マシンのIPに基づいています。
port
: クラスタ・データの送受信を行うポート。デフォルトは、9127
です。
現在のサーブレットのレスポンスが特定のMIMEタイプに設定されているときにコールするサーブレットを指定します。指定されたサーブレットは、現在のサーブレットの後にコールされます。これは、サーブレット・チェーンと呼ばれ、特定の種類の出力をフィルタしたり変換します。
注意 サーブレット・チェーンは、標準サーブレット・フィルタと基本的に同様の機能を持つ旧式のメカニズムです。これは、サーブレット仕様のバージョン2.3で説明されています。かわりにサーブレット・フィルタを使用します。「サーブレット・フィルタ」を参照してください。 |
<servlet-chaining>
の属性は次のとおりです。
mime-type
: text/html
など、チェーンをトリガーするMIMEタイプを指定します。
servlet-name
: 特定のMIMEタイプの場合にコールするサーブレットを指定します。サーブレット名は、global-web-application.xml
、web.xml
またはorion-web.xml
の<web-app>
要素の定義によって、サーブレット・クラスに関連付けられます。
リクエストのトラッキングに使用するサーブレットを指定します。リクエスト・トラッキングは、ログを記録する場合などに役立ちます。
global-web-application.xml
ではなく、orion-web.xml
にすべてのリクエスト・トラッキングを定義する必要があります。これは、<request-tracker>
要素が同じアプリケーション内で定義される1つのサーブレットを指し示すためです。
リクエスト・トラッキングは、対応するレスポンスがコミットされるとき(レスポンスが実際に送信される直前)、ブラウザからサーバーに送信される各個別のリクエストに対して起動されます。
リクエスト・トラッキングが複数存在する場合がありますが、各トラッキングは個別の<request-tracker>
要素で定義されています。
<request-tracker>
の属性は次のとおりです。
servlet-name
: 起動するサーブレットを指定します。web.xml
ファイルの対応する<servlet-name>
要素または<servlet-class>
要素(両方とも<servlet>
要素のサブ要素)に基づいて、サーブレット名またはクラス名のいずれかを指定できます。
このアプリケーションに対してセッション・トラッキングの設定を指定します。セッション・トラッキングは、Cookie(Cookie対応のブラウザの場合)を使用して行われます。
注意
|
サーブレット・セッションに関する一般的な情報は、「サーブレットのセッション」を参照してください。
セッション・トラッキングに使用するサーブレットは、サブ要素により指定します。
<session-tracking>
のサブ要素は次のとおりです。
<session-tracker>
<session-tracking>
の属性は次のとおりです。
autojoin-session
: ユーザーがアプリケーションにログインすると同時に、そのユーザーにセッションを割り当てるかどうかを指定します。サポートされている値は、true
およびfalse
(デフォルト)です。
cookies
: セッションCookieを送信するかどうかを指定します。サポートされている値は、enabled
(デフォルト)およびdisabled
です。
cookie-domain
: Cookieに必要なドメインを指定します。この属性を使用して、複数のWebサイト上で単一クライアントまたはユーザーを追跡できます。設定はピリオド(.
)から始まる必要があります。次に例を示します。
<session-tracking cookie-domain=".us.oracle.com" />
この場合、ユーザーが.us.oracle.com
ドメイン・パターンに一致する任意のサイト(webserv1.us.oracle.com
またはwebserv2.us.oracle.com
など)にアクセスすると、同じCookieが使用および再使用されます。
ドメイン仕様は少なくとも2つの要素(.us.oracle.com
または.oracle.com
など)で構成する必要があります。たとえば、.com
という設定は無効です。
次に、Cookieドメイン機能が役立つ例を2つ示します。
<web-app>
要素がshared="true"
に設定されている共有アプリケーションに使用できます。このようなアプリケーションでは、リクエストに使用されるポートはセキュアである場合と、セキュアでない場合があります。ここでのポートは、別個のWebサイトを意味します。使用されるポートに関係なく、同じCookieを使用します。この使用例ではcookie-domain
を使用する必要はありませんが、これはデフォルト・ポートとしてHTTPに80、HTTPSには443を使用している場合についてです。クライアントでは、これらをすでに同じWebサイトの異なるポートとして認識済であり、単一のCookieのみが使用されます。
cookie-max-age
: この数値は、セッションCookieとともに送信され、ブラウザがCookieをブラウザCookieキャッシュに保持する最大期間(秒単位)を指定します。デフォルトでは、ブラウザ・セッションの間Cookieはメモリーに格納され、その後廃棄されます。
<session-tracking>
のこのサブ要素は、セッション・トラッカとして使用するサーブレットを指定します。セッション・トラッキングは、たとえば、ログを記録する場合に役立ちます。
global-web-application.xml
ではなく、orion-web.xml
ですべてのセッション・トラッカを定義する必要があります。これは、<session-tracker>
要素が同じアプリケーション内で定義される1つのサーブレットを指し示すためです。
セッション・トラッカは、セッションが作成されると同時に起動されます。特に、HTTPセッション・リスナー(javax.servlet.http.HttpSessionListener
インタフェースを実装するクラスのインスタンス)のsessionCreated()
メソッドが起動されると同時に起動されます。
セッション・トラッカが複数存在することがありますが、各トラッカは個別の<session-tracker>
要素で定義されます。
<session-tracker>
の属性は次のとおりです。
servlet-name
: 起動するサーブレットを指定します。web.xml
ファイルの対応する<servlet-name>
要素または<servlet-class>
要素(両方とも<servlet>
要素のサブ要素)に基づいて、サーブレット名またはクラス名のいずれかを指定できます。
この要素を使用して、データ・ソースやJMSキュー、メール・セッションなどの外部リソースへの参照を宣言します。これは、デプロイ時に、リソース参照名をJNDIの場所に関連付けます。
<resource-ref-mapping>
のサブ要素は次のとおりです。
<lookup-context>
<resource-ref-mapping>
の属性は次のとおりです。
location
: リソースのルックアップを行うJNDIの場所を指定します。次に例を示します。
location="jdbc/TheDS"
name
: リソースの参照名を指定します。web.xml
ファイルのresource-ref
要素の名前と一致します。次に例を示します。
name="jdbc/TheDSVar"
<resource-ref-mapping>
のこのサブ要素は、リソースを取得するために使用するオプションのJNDIコンテキスト(javax.naming.Context
インスタンス)を指定します。これは、サード・パーティ製のモジュール(サード・パーティ製のJMSサーバーなど)に接続する場合に役立ちます。リソース・ベンダーが提供するJNDIコンテキストの実装を使用するか、何も存在しない場合はベンダーのソフトウェアとのネゴシエーションを行う実装を作成します。
<lookup-context>
のサブ要素は次のとおりです。
<context-attribute>
<lookup-context>
の属性は次のとおりです。
<lookup-context>
のサブ要素(<resource-ref-mapping>
のサブ要素)は、サード・パーティなどの外部のJNDIコンテキストに送信する属性を指定します。
JNDIの中で唯一の必須属性はjava.naming.factory.initial
で、これはコンテキスト・ファクトリの実装のクラス名です。
<context-attribute>
の属性は次のとおりです。
orion-web.xml
内で、web.xml
ファイルのenv-entry
設定の値をオーバーライドします。EARの構成にデプロイ固有の値を直接反映しないようにするために使用します。タグのボディに新しい値を指定します。
<env-entry-mapping>
の属性は次のとおりです。
特定のユーザーとグループ、または全ユーザーに、セキュリティ・ロールをマップします。web.xml
ファイル内の同じ名前のセキュリティ・ロールにマップします。impliesAll
属性または適切なサブ要素の組合せ(<group>
または<user>
、あるいはその両方)を使用する必要があります。
OC4J構成ファイルの<security-role-mapping>
要素に関する追加情報は、『Oracle Application Server Containers for J2EE Enterprise JavaBeans開発者ガイド』を参照してください。
<security-role-mapping>
のサブ要素は次のとおりです。
<group> <user>
<security-role-mapping>
の属性は次のとおりです。
impliesAll
: このマッピングに全ユーザーを含めるかどうかを指定します。サポートされている値は、true
またはfalse
(デフォルト)です。
name
: セキュリティ・ロールの名前を指定します。web.xml
の<security-role>
要素の<role-name>
サブ要素に指定されている名前と一致させてください。
<security-role-mapping>
のサブ要素を使用して、親の<security-role-mapping>
要素のセキュリティ・ロールにマップするグループを指定します。指定されたグループの全メンバーがこのロールに含まれます。
<group>
の属性は次のとおりです。
<security-role-mapping>
のサブ要素を使用して、親の<security-role-mapping>
要素のセキュリティ・ロールにマップするユーザーを指定します。
<user>
の属性は次のとおりです。
デプロイ時に、<ejb-ref>
要素に定義されているEJB参照とJNDIの場所との間のマッピングを作成します。
<ejb-ref>
要素は、orion-web.xml
またはweb.xml
の<web-app>
要素内に置くことができ、EJBへの参照を宣言するために使用します。
<ejb-ref-mapping>
の属性は次のとおりです。
指定されたリソースのセットに期限を設定します。これは、ブラウザでリソースが期限切れになるまでの期間です。(ブラウザでは、次回のリクエストに応じて期限切れのリソースを再ロードします。)これは、ドキュメントほど頻繁にイメージの再ロードを行わないなどのキャッシュ・ポリシーに役立ちます。
<expiration-setting>
の属性は次のとおりです。
expires
: 期限切れまでの時間(秒単位)を指定します。期限切れを指定しない場合はnever
にします。即時期限切れのデフォルトの設定は0
(ゼロ)です。
url-pattern
: 期限切れが適用されるURLパターンを指定します。次に例を示します。
url-pattern="*.gif"
この要素を使用して、OracleAS JAAS ProviderおよびSingle Sign-On(SSO)のプロパティをサーブレットの実行用に構成します。特定のセキュリティ・サブジェクトの権限を使用してサーブレットを起動するには、これらの機能を適切に設定する必要があります。
<jazn-web-app>
の属性は次のとおりです。
auth-method
: サポートされている値は、SSO
(HTTPクライアント認証にOracle Application Server Single Sign-Onを使用)と、DIGEST
(ダイジェスト認証メカニズムを使用)です。これらの設定は、orion-application.xml
ファイルの<jazn-web-app>
でもサポートされています。
runas-mode
: runas-mode
をtrue
に設定し、特定のサブジェクトの権限を使用してサーブレットを起動します。サブジェクトはjavax.security.auth.Subject
クラスのインスタンスで定義され、個人などの単一エンティティに関する一連のファクトが含まれます。ファクトには、パスワードや暗号鍵などの、認証およびセキュリティに関連する属性が含まれます。
デフォルトのrunas-mode="false"
設定では、doasprivileged-mode
は無視されます。
doasprivileged-mode
: runas-mode="true"
の場合は、doasprivileged-mode
のデフォルトのtrue
設定を使用して、サーバーのアクセス制御の制限に縛られずに特定のサブジェクトの権限を使用します。
サーブレットが起動されると、runas-mode="true"
およびdoasprivileged-mode="true"
の値から、静的なSubject.doAsPrivileged()
メソッドが使用されます。runas-mode="true"
およびdoasprivileged-mode="false"
の値から、静的なSubject.doAs()
メソッドが使用されます。いずれの場合も、JAAS ProviderではメソッドのコールにおけるSubject
インスタンスに渡します。
doAsPrivileged()
メソッドが使用されると、JAAS ProviderではNULLのjava.security.AccessControlContext
インスタンスを使用してメソッドを起動します。これは、現行サーバーのAccessControlContext
インスタンスに制限されずに新規の処理を開始し、サーブレットを実行するためです。doAs()
メソッドが使用されると、AccessControlContext
インスタンスが現行スレッド(サーバー)から取得されます。
JAASおよびこの要素に関して説明した機能の追加情報は、『Oracle Application Server Containers for J2EEセキュリティ・ガイド』を参照してください。次のサイトでSun社のドキュメントも参照できます。
http://java.sun.com/j2se/1.4.2/docs/guide/security/jaas/JAASRefGuide.html
この要素は、クラスロード指示に使用します。追加情報は、「OC4Jにおけるシステム・クラスより前のWARファイル・クラスのロード」を参照してください。
<web-app-class-loader>
の属性は次のとおりです。
search-local-classes-first
: この属性をtrue
に設定すると、システム・クラスの前にWARファイルのクラスが検索され、ロードされます。デフォルトの設定は、false
です。
include-war-manifest-class-path
: この属性をfalse
に設定すると、search-local-classes-first
の設定に関係なく、WARファイル・クラスの検索時とロード時に、WARファイルのマニフェストのClass-Path
属性に指定されたCLASSPATHは含まれません。デフォルトの設定は、true
です。この要素は、転送またはインクルード・ターゲットのOC4J認証の無効化に使用します。
<authenticate-on-dispatch>
の属性は次のとおりです。
value
: この属性をfalse
に設定すると、転送またはインクルード・ターゲットの認証が無効化されます。これは、サーブレット仕様に準拠しています。デフォルト値はtrue
で、以前のバージョンのOC4Jに対して開発されたアプリケーションでセキュリティ違反が発生するのを防ぎます。
この要素は、標準的なweb.xml
ファイルなどで使用します。詳細は、サーブレット仕様を参照してください。global-web-application.xml
内で、<web-app>
設定のデフォルトを設定できます。web.xml
では、アプリケーション固有の<web-app>
設定によって、デフォルトをオーバーライドできます。orion-web.xml
では、デプロイ固有の<web-app>
設定によって、web.xml
の設定をオーバーライドできます。
この項では、OC4J 10.1.2実装のglobal-web-application.xml
およびorion-web.xml
ファイルに使用する、DTDのOC4J固有部分について説明します。ここには、web.xml
ファイルの標準の<web-app>
要素に使用するDTD部分は含まれません。(global-web-application.xml
およびorion-web.xml
のDTDは標準web.xml
のDTDのスーパーセットです。)
<!ENTITY % CHARSET "CDATA"> <!ENTITY % WEBPATH "CDATA"> <!ENTITY % NUMBER "CDATA"> <!ENTITY % HOST "CDATA"> <!ENTITY % PATH "CDATA"> <!ENTITY % CLASSNAME "CDATA"> <!-- A group that this security-role-mapping implies. Ie all the members of the specified group are included in this role. --> <!ELEMENT group (#PCDATA)> <!ATTLIST group name CDATA #IMPLIED > <!-- An attribute sent to the context. The only mandatory attribute in JNDI is the 'java.naming.factory.initial' which is the classname of the context factory implementation. --> <!ELEMENT context-attribute (#PCDATA)> <!ATTLIST context-attribute name CDATA #IMPLIED value CDATA #IMPLIED > <!-- Defines the relative/absolute path to a file containing mime-mappings to use. --> <!ELEMENT mime-mappings (#PCDATA)> <!ATTLIST mime-mappings path CDATA #IMPLIED > <!-- Specifies a codebase where classes used by this application (such as servlets/beans) can be found. --> <!ELEMENT classpath (#PCDATA)> <!ATTLIST classpath path CDATA #REQUIRED > <!-- The specification of an optional javax.naming.Context implementation used for retrieving the resource. This is useful when hooking up with 3rd party modules, such as a 3rd party JMS server for instance. Either use the context implementation supplied by the resource vendor or if none exists write an implementation which in turn negotiates with the vendor software. --> <!ELEMENT lookup-context (context-attribute+)> <!ATTLIST lookup-context location CDATA #IMPLIED > <!-- Specifies a servlet to use as request-tracker; request-trackers are invoked for every request and are useful for logging purposes, for example --> <!ELEMENT request-tracker (#PCDATA)> <!ATTLIST request-tracker servlet-name CDATA #IMPLIED > <!-- The resource-ref element is used for the declaration of a reference to an external resource such as a datasource, JMS queue, mail session or similar. The resource-ref-mapping ties this to a JNDI-location when deploying. --> <!ELEMENT resource-ref-mapping (lookup-context?)> <!ATTLIST resource-ref-mapping location CDATA #IMPLIED name CDATA #REQUIRED > <!-- Tag that is defined if the application is to be clustered. Clustered applications have their ServletContext and session data shared between the apps in the cluster, the values have to be either Serializable or be remote RMI-objects (implement java.rmi.Remote). --> <!ELEMENT cluster-config (#PCDATA)> <!ATTLIST cluster-config host %HOST; "230.0.0.1" id CDATA "based on local IP" port %NUMBER; "9127" > <!-- Specifies an optional access-mask for this application, hostnames and ip/subnets can be used to filter out allowed clients of this application. --> <!ELEMENT access-mask (host-access*, ip-access*)> <!ATTLIST access-mask default (allow|deny) "allow" > <!-- Overrides the value of an env-entry in the assembly descriptor. It is used to keep the .ear (assembly) clean from deployment-specific values. The body is the value. --> <!ELEMENT env-entry-mapping (#PCDATA)> <!ATTLIST env-entry-mapping name CDATA #IMPLIED > <!-- Specifies the Expires setting for a given set of resources, useful for caching policies (for instance for browsers not to reload images as frequently as documents). --> <!ELEMENT expiration-setting (#PCDATA)> <!ATTLIST expiration-setting expires CDATA #IMPLIED url-pattern CDATA #IMPLIED > <!-- Overrides the value of a context-param in the assembly descriptor. It is used to keep the .ear (assembly) clean from deployment-specific values. The body is the value. --> <!ELEMENT context-param-mapping (#PCDATA)> <!ATTLIST context-param-mapping name CDATA #IMPLIED > <!-- Session-tracking settings for this application. --> <!ELEMENT session-tracking (session-tracker*)> <!ATTLIST session-tracking autoencode-absolute-urls (true|false) "false" autoencode-urls (true|false) "true" autojoin-session (true|false) "false" cookie-domain CDATA #IMPLIED cookie-max-age %NUMBER; "in memory only" cookies (enabled|disabled) "enabled" > <!-- A user that this security-role-mapping implies. --> <!ELEMENT user (#PCDATA)> <!ATTLIST user name CDATA #IMPLIED > <!-- Adds a virtual directory mapping, used to include files that doesnt physically reside below the document root among the web-exposed files. --> <!ELEMENT virtual-directory (#PCDATA)> <!ATTLIST virtual-directory real-path %PATH; #IMPLIED virtual-path %PATH; #IMPLIED > <!-- Specifies an ip/netmask who is allowed access. --> <!ELEMENT ip-access (#PCDATA)> <!ATTLIST ip-access ip CDATA #REQUIRED mode (allow|deny) #REQUIRED netmask CDATA #IMPLIED > <!-- Specifies a servlet to use as chainer for a specified mime-type. Useful to filter/transform certain kinds of output. --> <!ELEMENT servlet-chaining (#PCDATA)> <!ATTLIST servlet-chaining mime-type CDATA #IMPLIED servlet-name CDATA #IMPLIED > <!-- Specifies a domain or netmask who is allowed access. --> <!ELEMENT host-access (#PCDATA)> <!ATTLIST host-access domain CDATA #REQUIRED mode (allow|deny) #REQUIRED > <!-- The ejb-ref element is used for the declaration of a reference to another enterprise bean's home. The ejb-ref-mapping ties this to JNDI-location when deploying. --> <!ELEMENT ejb-ref-mapping (#PCDATA)> <!ATTLIST ejb-ref-mapping location CDATA #IMPLIED name CDATA #REQUIRED > <!-- The runtime mapping (to groups and users) of a role. Maps to a security-role of the same name in the assembly descriptor. --> <!ELEMENT security-role-mapping (group*, user*)> <!ATTLIST security-role-mapping impliesAll CDATA #IMPLIED name CDATA #IMPLIED > <!-- Specifies a servlet to use as session-tracker; session-trackers are invoked as soon as a session is created and are useful for logging purposes, for example --> <!ELEMENT session-tracker (#PCDATA)> <!ATTLIST session-tracker servlet-name CDATA #IMPLIED > <!-- JAZN configuration --> <!ELEMENT jazn-web-app (#PCDATA)> <!ATTLIST jazn-web-app auth-method CDATA #IMPLIED runas-mode (true | false) "false" doasprivileged-mode (true | false) "true" > <!-- Web-app classloader configuration --> <!ELEMENT web-app-class-loader EMPTY> <!ATTLIST web-app-class-loader search-local-classes-first (true | false) "false" include-war-manifest-class-path (true | false) "true" > <!-- Authentication of forward/include targets --> <!ELEMENT authenticate-on-dispatch EMPTY> <!ATTLIST authenticate-on-dispatch value (true | false) "true" > <!-- This file contains the orion-specific configuration for a web-application. The path to the file is located at ORION_HOME/application-deployments/deploymentName/warname(.war)/orion-web.xml or (web-app-root/)WEB-INF/orion-web.xml if no deployment-directory is specified in server.xml. --> <!ELEMENT orion-web-app ( classpath*, context-param-mapping*, mime-mappings*, virtual-directory*, access-mask?, cluster-config?, servlet-chaining*, request-tracker*, session-tracking?, resource-ref-mapping*, security-role-mapping*, env-entry-mapping*, ejb-ref-mapping*, expiration-setting*, web-app?, jazn-web-app?, web-app-class-loader?, authenticate-on-dispatch? )> <!ATTLIST orion-web-app autoreload-jsp-beans (true|false) "true" autoreload-jsp-pages (true|false) "true" default-buffer-size CDATA "2048" default-charset %CHARSET; "iso-8859-1" deployment-version CDATA #IMPLIED development (true|false) "false" directory-browsing (allow|deny) "deny" file-modification-check-interval %NUMBER; "1000" jsp-cache-directory CDATA #IMPLIED jsp-cache-tlds (true|on|standard|false|off) "true" jsp-taglib-locations CDATA #IMPLIED jsp-print-null (true|false) "true" jsp-timeout %NUMBER; "0 (never)" simple-jsp-mapping (true|false) "false" enable-jsp-dispatcher-shortcut (true|false) "true" persistence-path CDATA #IMPLIED servlet-webdir %PATH; "/servlet/" source-directory CDATA #IMPLIED temporary-directory CDATA #IMPLIED >
この項では、global-web-application.xml
およびorion-web.xml
ファイルの階層表現について説明します。
<orion-web-app default-buffer-size="..." default-charset="..." deployment-version="..." development="..." source-directory="..." directory-browsing="..." file-modification-check-interval="..." jsp-print-null="..." jsp-timeout="..." jsp-cache-directory="..." jsp-cache-tlds="..." jsp-taglib-locations="..." simple-jsp-mapping="..." enable-jsp-dispatcher-shortcut="..." persistence-path="..." servlet-webdir="..." temporary-directory="..."> <classpath path="..."> <context-param-mapping name="..."> <mime-mappings path="..."> <virtual-directory real-path="..." virtual-path="..."> <access-mask default="..."> <host-access domain="..." mode="..."> <ip-access ip="..." netmask="..." mode="..."> <cluster-config host="..." id="..." port="..."> <servlet-chaining mime-type="..." servlet-name="..."> <request-tracker servlet-name="..."> <session-tracking autojoin-session="..." cookies="..." cookie-domain="..." cookie-max-age="..."> <session-tracker servlet-name="..."> <resource-ref-mapping location="..." name="..."> <lookup-context location="..."> <context-attribute name="..." value="..."> <env-entry-mapping name="..."> <security-role-mapping impliesAll="..." name="..."> <group name="..."> <user name="..."> <ejb-ref-mapping location="..." name="..."> <expiration-setting expires="..." url-pattern="..."> <jazn-web-app auth-method="..." runas-mode="..." doasprivileged-mode="..."> <web-app-class-loader search-local-classes-first="..." include-war-manifest-class-path="..."> <authenticate-on-dispatch value="..."> <web-app> AS IN STANDARD WEB.XML
これは、デフォルトのglobal-web-application.xml
ファイルの簡単な例です。<orion-web-app>
属性の設定の一部、MIMEマッピングの設定、およびJSPとRMIのフロントエンド・サーブレットの設定とマッピングを次に示します(どの製品も出荷時に変更されることがあります)。
<?xml version="1.0" standalone='yes'?> <!DOCTYPE orion-web-app PUBLIC '//Evermind//Orion web-application' 'http://xmlns.oracle.com/ias/dtds/orion-web.dtd'> <orion-web-app jsp-cache-directory="./persistence" servlet-webdir="/servlet" development="false" jsp-timeout="0" jsp-taglib-locations="./jsp/lib/taglib" > <!-- The mime-mappings for this server --> <mime-mappings path="./mime.types" /> <web-app> <servlet> <servlet-name>jsp</servlet-name> <servlet-class>oracle.jsp.runtimev2.JspServlet</servlet-class> <load-on-startup>0</load-on-startup> <!-- you can disable page scope listener if you don't need this function. --> <init-param> <param-name>check_page_scope</param-name> <param-value>true</param-value> </init-param> <!-- you can set main_mode to "justrun" to speed up JSP dispatching, if you don't need to recompile your JSP anymore. You can always switch your main_mode. Please see our doc for details --> <!-- <init-param> <param-name>main_mode</param-name> <param-value>justrun</param-value> </init-param> --> </servlet> <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>/*.jsp</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>/*.JSP</url-pattern> </servlet-mapping> <servlet> <servlet-name>rmi</servlet-name> <servlet-class> com.evermind.server.rmi.RMIHttpTunnelServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>rmi</servlet-name> <url-pattern>/*.tunnelrmi</url-pattern> </servlet-mapping> </web-app> </orion-web-app>
次の項では、Oracle Application Server環境用のdefault-web-site.xml
、およびOC4Jスタンドアロン環境用のhttp-web-site.xml
を含む、WebサイトのXML構成ファイルの詳細を説明します。
これらのファイルの概要は、「OC4J Webサイト・ディスクリプタ」を参照してください。
この項の要素の説明は、default-web-site.xml
(Oracle Application Server)、http-web-site.xml
(OC4Jスタンドアロン)および任意のOC4J WebサイトのXMLファイルに適用されます。
OC4J Webサイトを構成するルート要素です。
<web-site>
のサブ要素は次のとおりです。
<description> <frontend> <web-app> <default-web-app> <user-web-apps> <access-log> <odl-access-log> <ssl-config>
<web-site>
の属性は次のとおりです。
cluster-island
: クラスタ・アイランドは、レプリケーションに対してセッション・フェイルオーバー時の状態を共有する、2つ以上のWebサーバーです。Oracle Application Serverの複数のOC4Jインスタンス間でWeb層をクラスタリングする場合は、cluster-island
属性を使用します。この属性をクラスタ・アイランドのID(1から始まる数値)に設定すると、このWebサイトは、IDで指定されたアイランドのバックエンド・サーバーとして加わります。このIDは、使用しているクラスタ構成に基づいて選択された数値です。使用するアイランドが1つのみの場合、IDは常に1です。
クラスタリングに関する一般的な情報は、『Oracle Application Serverパフォーマンス・ガイド』を参照してください。
display-name
: この属性を使用して、ユーザーにわかりやすい非公式のWebサイト名を指定できます。
host
: このWebサイトに、ホストをDNSホスト名またはIPアドレスのいずれかを指定します。サーバーがマルチ・ホーム・マシン(複数のIPアドレスを持つ)の場合、[ALL]
設定を使用してすべてのIPアドレスをリスニングできます。これらはすべてこの単一のWebサイトに統合されます。
log-request-info
: エラーの発生時に、受信リクエストに関する情報をWebサイトのログに書き込むかどうかを指定します。サポートされている値は、true
およびfalse
(デフォルト)です。Webサイトのログは、<access-log>
または<odl-access-log>
要素を使用して、有効にします。これについては、この項の後半で説明します。(Webサイトのログを始めとする、ログの有効化に関する追加情報は、「OC4Jのロギング」を参照してください。)
max-request-size
: 受信リクエストの最大サイズを、バイト単位で設定します。この最大値を超えるリクエストをクライアントが送信すると、クライアントに「リクエスト・エンティティが大きすぎます」というエラーが返されます。デフォルトの最大値は、15000です。
secure
: Secure Sockets Layer(SSL)機能をサポートするかどうかを指定します。サポートされている値は、true
およびfalse
(デフォルト)です。ajp13
のプロトコル設定(Oracle Application Server環境で使用)をtrue
に設定すると、Oracle HTTP ServerとOC4J間のセキュアなAJPプロトコルとなります。http
のプロトコル設定(OC4Jスタンドアロンで使用)をtrue
に設定すると、クライアントとOC4J間のHTTPSプロトコルとなります。
また、secure="true"
設定では、<ssl-config>
要素(<web-site>
要素の下のサブ要素)を使用して、キーストア・パスおよびパスワードを指定する必要があることに注意してください。この要素については、この項の後半で説明します。
protocol
: Webサイトが使用しているプロトコルを指定します。可能な値は、http
およびajp13
(AJPではデフォルト)です。Oracle Application Serverの本番環境では、ajp13
設定のみを使用してください。AJPは、Oracle HTTP Serverとmod_oc4j
とともに使用します。各プロトコルには対応するポートが、各ポートには対応するプロトコルが必要です。
http
設定はOC4Jスタンドアロンで使用されます。
ajp13
またはhttp
設定のいずれかをセキュア・モード(SSL)で使用するには、secure
フラグをtrue
に設定し、<ssl-config>
サブ要素を使用してキーストア・パスおよびパスワードを指定する必要があります。この要素については、この項の後半で説明します。
port
: このWebサイトのポート番号を指定します。各ポートには対応するプロトコルが、各プロトコルには対応するポートが必要です。OC4Jスタンドアロンでは、デフォルトでport
設定8888を使用して、OC4Jリスナーに直接アクセスします。これは、必要に応じて変更できます。Oracle Application Server環境では、このポート設定はOracle Process Management and Notification(OPMN)システムでオーバーライドされます。Oracle Application Serverでは、ポート7777がデフォルトで使用され、Oracle Application Server Web Cacheが有効なOracle HTTP Serverを経由してアクセスします。
use-keep-alives
: サーブレット・コンテナの一般的な動作は、リクエストが完了した後に接続をクローズすることです。ただし、use-keep-alives
設定をtrue
にすることにより、リクエスト間で接続が維持されます。AJPプロトコルの場合は、常に接続が維持され、この属性は無視されます。その他のプロトコルのデフォルトはtrue
で、これを無効化するとパフォーマンスが大幅に低下します。
virtual-hosts
: このオプションの設定は、同じIPアドレスを共有する仮想サイトに役立ちます。値は、このWebサイトに関連付けられているホスト名の、カンマ区切りのリストです。この要素のボディを使用して、Webサイトの簡単な説明を記述できます。
HTTPクライアントにより表示されるWebサイトの、認識可能なフロントエンド・ホストおよびポートを指定します。サイトがロード・バランサまたはファイアウォールの後ろにある場合、URLリライティングなどの機能に対するWebアプリケーション・コードに適切な情報を与えるには、必ず<frontend>
を指定する必要があります。アプリケーションを実行中のバックエンド・サーバーは、<frontend>
要素に指定されているホストとポートを使用し、URLリライティングではサーバー自体ではなく、参照先のフロントエンドを認識します。したがって、後続のリクエストは、バックエンドに直接アクセスすることなく、フロントエンドから適切に受信されます。
<frontend>
の属性は次のとおりです。
この要素は、特定のWebモジュールをこのWebサイトにバインドします。また、server.xml
ファイルからJ2EEアプリケーションのアーカイブの名前(.ear
拡張子がないEARファイル名)、およびJ2EEアプリケーション内のWebモジュールの名前を指定します。Webモジュールは、アプリケーションのEARファイル(または、EARファイルのorion-application.xml
ファイル)にある、J2EEのapplication.xml
ファイルで定義されます。Webモジュールは、<web-app>
要素のroot
属性により指定された場所にバインドされます。
注意 EARファイル内のWARファイルではなく、WARファイル単独でデプロイできます。OC4Jスタンドアロンでは、このようなWebアプリケーションはOC4Jのデフォルトのアプリケーションに追加されます。(OC4Jでは、常になんらかの親アプリケーションが存在する必要があります。)詳細は、「OC4JのデフォルトのアプリケーションおよびデフォルトのWebアプリケーション」を参照してください。
この使用例では、WebサイトのXMLファイルの |
特にapplication
およびname
属性に関するWebサイトのXMLファイルへのマッピングとWebサイトのXMLファイルからのマッピングについては、このマニュアルの他の章で例を示します。「例: Webサイト・ディスクリプタへのマッピングとWebサイト・ディスクリプタからのマッピング」(EARファイル内のWARファイルをデプロイする典型的な手順)、および「OC4Jスタンドアロンへの独立したWARファイルのデプロイ」(WARファイル単独でOC4Jのデフォルトのアプリケーションにデプロイする手順)を参照してください。
<web-app>
の属性は次のとおりです。
access-log
: <access-log>
要素または<odl-access-log>
要素をオーバーライドし、この<web-app>
要素に関連付けられたWebアプリケーションのアクセス・ロギングのみを無効にするには、access-log="false"
を設定します。デフォルトの設定は、true
です(WebサイトのXMLファイルに<access-log>
要素または<odl-access-log>
要素がない場合は、アクセス・ロギングはすでに無効になっており、access-log
属性は影響しません)。
application
: J2EEアプリケーションのアーカイブ名を指定します。これは、.ear
拡張子がないEARファイル名であり、server.xml
ファイルの<application>
要素のname
属性に対応します。load-on-startup
: オプションの属性。このWebモジュールを、アプリケーションの起動時に事前にロードするかどうかを指定します。指定しない場合は、Webアプリケーションが最初にリクエストされた時点でロードされます。サポートされている値は、true
およびfalse
(デフォルト)です。アプリケーションのweb.xml
ファイル内の<load-on-startup>
要素を使用した個別サーブレットの事前ロードを実行できるのは、この<web-app>
要素のload-on-startup
属性が有効な場合のみです。詳細は、「サーブレットの事前ロード」を参照してください。
max-inactivity-time
: Webモジュールを非アクティブにしておく時間(分)を指定するための、オプションの整数属性です。この時間を経過すると、OC4JはWebモジュールをシャットダウンします。デフォルトでは、非アクティブが原因でWebモジュールがシャットダウンされることはありません。
name
: 特定のJ2EEアプリケーション内のWebモジュール名を指定します。J2EEのapplication.xml
ファイルにおける、<module>
要素の<web>
サブ要素の<web-uri>
値(.war
拡張子がない)に対応します。J2EEのapplication.xml
ファイルはEARファイルにあります。
root
: Webモジュールをバインドするパスを指定します。モジュールの起動に使用されるURLのコンテキスト・パス部分を定義します。たとえば、Webサイトwww.example.com
のWebモジュールCatalogApp
が、root
設定の/catalog
にバインドされる場合は、次のように起動できます。
http://www.example.com/catalog
shared
: Webサイト間で公開されたWebモジュールの共有を許可します。ここでは、Webサイトはプロトコルおよびポートの特定の組合せで定義されます。サポートされている値は、true
およびfalse
(デフォルト)です。共有すると、セッション、サーブレット・インスタンスおよびコンテキスト値など、Webアプリケーションを構成するすべてのものが共有されることを意味します。たとえば、SSLがすべての通信ではなく一部の通信に必須の場合、同一のコンテキスト・パスにおいて、HTTPサイトおよびHTTPSサイト間でOC4JスタンドアロンのWebアプリケーションを共有する場合などです。(すべての情報ではなく、機密に関わる情報のみを暗号化することで、パフォーマンスが向上します。)
HTTPSのWebアプリケーションに共有のマークが付いている場合、そのセッション・トラッキングの方針が、SSLセッション・トラッキングから、CookieやURLリライティングのセッション・トラッキングに戻ります。これによりWebアプリケーションの保護が低下しますが、一部のブラウザでは適切にサポートされていない、SSLセッション・タイムアウトなどの問題に対処するためには必須です。
このWebサイトのデフォルトのWebアプリケーションに対する参照を作成します。ユーザーにとって、これはOC4Jスタンドアロン環境でのみ役立ちます。詳細は、「OC4JのデフォルトのアプリケーションおよびデフォルトのWebアプリケーション」を参照してください。
Oracle Application Server環境では、OC4JのデフォルトのWebアプリケーションにはシステム・レベルの機能がありますが、この機能は、他には役立ちません。「Oracle Application ServerでのOC4JのデフォルトWebアプリケーション」を参照してください。
<default-web-app>
要素では、前述の<web-app>
要素と同じ属性を使用しますが、load-on-startup
のデフォルトの設定がtrue
であることに注意してください。
この要素は、ユーザー・ディレクトリとアプリケーションをサポートするために使用します。各ユーザーには、自分のWebモジュールおよび関連するweb-application.xml
ファイルがあります。ユーザー・アプリケーションは、サーバー・ルートの/
username
/
に置かれます。
<user-web-apps>
の属性は次のとおりです。
max-inactivity-time
: Webモジュールを非アクティブにしておく時間(分)を指定するための、オプションの整数属性。この時間を経過すると、OC4JはWebモジュールをシャットダウンします。デフォルトでは、非アクティブが原因でWebモジュールがシャットダウンされることはありません。
path
: ユーザー・アプリケーションのローカル・ディレクトリを指定するためのパスを指定します(ユーザー名にワイルド・カードも使用可能)。たとえば、UNIXでのデフォルトのパス設定は/home/
username
であり、username
は、特定のユーザー名で置換されます。
この要素を使用して、このWebサイトのテキストベースのアクセス・ロギングを有効にし、アクセス・ログに関する情報(パス、ファイル名および含まれる情報など)を指定します。ログ・ファイルは受信リクエスト(Webサイトの各アクセス)のログが記録される場所にあります。
かわりに、ODLロギングには<odl-access-log>
要素(次に説明します)を使用します。ODLの詳細は、「Oracle Diagnostic Loggingとテキストベースのロギング」を参照してください。
<access-log>
の属性は次のとおりです。
format
: 複数のサポートされている(ログ・エントリに追加される情報となる)変数を1つ以上指定します。サポートされる変数は、$time
、$request
、$ip
、$host
、$path
、$size
、$method
、$protocol
、$user
、$status
、$referer
、$time
、$agent
、$cookie
、$header
および$mime
です。変数の間には、ログ・メッセージの値の間に表示する、任意のセパレータを入力できます。デフォルトの設定は次のとおりです。
"$ip - $user - [$time] '$request' $status $size"
たとえば、これは次のようなログ・メッセージになります(2番目のメッセージは2行目に折り返されています)。
148.87.1.180 - - [06/Nov/2001:10:23:18 -0800] 'GET / HTTP/1.1' 200 2929 148.87.1.180 - - [06/Nov/2001:10:23:53 -0800] 'GET /webservices/statefulTest HTTP/1.1' 200 301
この例では、ユーザーはNULL、時刻は大カッコの中(format
設定の指定どおり)、リクエストは一重引用符の中(指定どおり)、そして最初のメッセージの状態とサイズはそれぞれ、200および2929です。
path
: アクセス・ログのパスおよび名前を指定します。これは、絶対パスまたはj2ee/home/config
ディレクトリからの相対パスにできます。default-web-site.xml
のデフォルトの設定は次のとおりです。
path="../log/default-web-access.log"
split
: 新規アクセス・ログの開始頻度を指定します。サポートされている値は、none
(デフォルトではなし)、hour
、day
、week
、またはmonth
です。none
以外の値の場合、suffix
属性に従ってログに名前が付けられます。
suffix
: ファイル分割を使用した場合、各ファイル名を一意にするためにログのベース・ファイル名(path
属性で指定されたとおりの名前)に追加するタイムスタンプ情報を指定します。使用される形式はjava.text.SimpleDateFormat
で、suffix
設定で使用される記号は、そのクラスの記号表記に従います。SimpleDateFormat
と、そこで使用される書式記号の詳細は、次の場所でSun社のJavadocを参照してください。
http://java.sun.com/j2se/1.4.2/docs/api/
デフォルトのsuffix
設定は、-yyyy-MM-dd
です。SimpleDateFormat
ドキュメントに記載されているとおり、これらの文字には、大/小文字の区別があります。
たとえば、次のような<access-log>
要素を考えてみます(デフォルトのsuffix
値を使用)。
<access-log path="c:¥foo¥web-site.log" split="day" />
ログ・ファイルには、次の例のような名前が付けられます。
c:¥foo¥web-site-2001-11-17.log
この要素を使用して、Webサイトに対するODLベースのアクセス・ロギングを有効にし、アクセス・ログに関する情報(パス、各ファイルのサイズの最大値およびログ・ディレクトリ内の全ファイルの合計サイズを含む)を指定します。ログ・ファイルは受信リクエスト(Webサイトの各アクセス)のログが記録される場所にあります。
かわりに、テキスト・ベースのロギングには(前述の)<access-log>
要素を使用します。
ODLの詳細は、「Oracle Diagnostic Loggingとテキストベースのロギング」を参照してください。
<odl-access-log>
の属性は次のとおりです。
path
: アクセス・ログ・ディレクトリへのパスを指定します。これは、絶対パスまたはj2ee/home/config
ディレクトリからの相対パスにできます。次に例を示します。
path="../log/default-web-access"
このディレクトリの初期ログ・ファイル名はlog1.xml
です。最大ファイル・サイズ(max-file-size
属性により指定)に到達すると、後続のログ・ファイルには、log2.xml
、log3.xml
などの名前が付けられます。
max-file-size
: 各ログ・ファイルの最大サイズを、KB単位で指定します。
max-directory-size
: path
属性で指定されるディレクトリにある、すべてのログ・ファイルの最大合計サイズを、KB単位で指定します。
この要素はSSL構成設定を、必要に応じて指定します。<web-site>
要素のsecure
属性をtrue
に設定する場合は、これを常に使用する必要があります。
関連情報については、「サーブレットのセキュリティ」を参照してください。
<ssl-config>
のサブ要素は次のとおりです。
<property>
<ssl-config>
の属性は次のとおりです。
keystore
: このインストールでユーザー・ベースの証明書およびキーを格納するためのこのWebサイトで使用されるキーストア・データベース(バイナリ・ファイル)への相対または絶対パス。パスの値にはファイル名が含まれます。相対パスは、WebサイトのXMLファイルの位置に対して相対的です。
キーストアはjava.security.KeyStore
インスタンスであり、Sun社のJDKで提供されるkeytool
ユーティリティを使用して作成および保持できます。
keystore-password
: キーストアをオープンする必須パスワード。
needs-client-auth
: Oracle HTTP ServerなどのOC4Jのクライアントであるエンティティで、OC4Jと通信するための認可の証明書を発行する必要があるかどうかを示します。サポートされている値は、true
(クライアント認証 - 証明書が必須の場合)およびfalse
(デフォルト - 証明書が必須でない場合)です。
provider
: JSSE(Java Secure Socket Extension)を使用している場合、この属性を使用してプロバイダを指定できます。デフォルトでは、OC4Jは通常Sun社のSSL実装を使用し、プロバイダに対し次のインスタンスを使用します。
com.sun.net.ssl.internal.ssl.Provider
ただし、SOAPおよびhttp_client
などの場合、オラクル社のSSL実装も使用する場合があります。
factory
: JSSEを使用していない場合、factory
属性を使用してSSLServerSocketFactory
の実装を指定します。デフォルトの設定は、次のとおりです。
"JSSE: com.evermind.ssl.JSSESSLServerSocketFactory"
サード・パーティのSSLServerSocketFactory
実装を使用する場合、<ssl-config>
要素の<property>
サブ要素を使用して、パラメータをファクトリに送信できます。
<ssl-config>
要素の<property>
サブ要素を使用して、必要に応じてサード・パーティのSSLServerSocketFactory
実装にパラメータを渡します。
<property>
の属性は次のとおりです。
この項では、OC4J 10.1.2実装のdefault-web-site.xml
およびhttp-web-site.xml
を含む、WebサイトのXML構成ファイルのDTDについて説明します。
<!ENTITY % WEBPATH "CDATA"> <!ENTITY % NUMBER "CDATA"> <!ENTITY % HOST "CDATA"> <!ENTITY % BOOLEAN "true|false"> <!ENTITY % PATH "CDATA"> <!-- When enabled user dirs/apps will be supported. Each user has his own private web-application (and connected web-application.xml file). The user apps are reached at /~username/ from the server root. --> <!ELEMENT user-web-apps (#PCDATA)> <!ATTLIST user-web-apps max-inactivity-time CDATA "no shutdown" path %PATH; #IMPLIED > <!-- Reference to the default <a class="link" href="web.xml.html">web-application</a> of this site. This application will be bound to the root of the site. --> <!ELEMENT default-web-app (#PCDATA)> <!ATTLIST default-web-app application CDATA #IMPLIED load-on-startup (true|false) "true" max-inactivity-time %NUMBER; #IMPLIED name CDATA #IMPLIED root %WEBPATH; #IMPLIED shared (true|false) "false" > <!-- A short description of this web-site. --> <!ELEMENT description (#PCDATA)> <!-- Relative/absolute path to the access-log for this site, this is where incoming requests will be logged. --> <!ELEMENT access-log (#PCDATA)> <!ATTLIST access-log format CDATA "$ip - $user - [$time] '$request' $status $size" path CDATA #IMPLIED split (none|hour|day|week|month) "none" suffix CDATA #IMPLIED > <!-- An ODL formated log file. The max-file-size is the maximum number of kilobytes a single log file is allowed to grow to. The max-directory-size is the maximum number of kilobytes that the directory is allowed to contain. --> <!ELEMENT odl-access-log (#PCDATA)> <!ATTLIST odl-access-log path CDATA #REQUIRED max-file-size CDATA #IMPLIED max-directory-size CDATA #IMPLIED> <!-- Reference to a <a class="link" href="web.xml.html">web-application</a>. This application will be bound at the location specified by the 'root' attribute. --> <!ELEMENT web-app (#PCDATA)> <!ATTLIST web-app application CDATA #IMPLIED load-on-startup (true|false) "false" access-log (true|false) "true" max-inactivity-time %NUMBER; "no shutdown" name CDATA #IMPLIED root %WEBPATH; #IMPLIED shared (true|false) "false" > <!-- A configuration parameter. --> <!ELEMENT property (#PCDATA)> <!ATTLIST property name CDATA #IMPLIED value CDATA #IMPLIED > <!-- Specifies SSL-configuration settings. These settings are used if secure="true" is specified on the site. If a 3rd party SSLServerSocketFactory implementation is used then x property tags can be defined to send arbitary arguments to the factory. --> <!ELEMENT ssl-config (property*)> <!ATTLIST ssl-config factory CDATA "com.evermind.server.JSSESSLServerSocketFactory" keystore CDATA #IMPLIED keystore-password CDATA #IMPLIED needs-client-auth (true|false) "false" provider CDATA #IMPLIED > <!-- The frontend tag describes which IP, port, and so on that HTTP clients perceive this site to be. This is needed when acting behind a load balancer or firewall in order to provide the correct info to web-app code when rewriting URLs --> <!ELEMENT frontend (#PCDATA)> <!ATTLIST frontend host CDATA #IMPLIED port CDATA #IMPLIED > <!-- This file contains the configuration for a web-site. --> <!ELEMENT web-site (description?, frontend?, default-web-app, web-app*, user-web-apps?, access-log?, odl-access-log?, ssl-config?)> <!ATTLIST web-site cluster-island CDATA #IMPLIED display-name CDATA #IMPLIED protocol CDATA #IMPLIED host %HOST; "[ALL]" log-request-info (true|false) "false" max-request-size CDATA #IMPLIED port %NUMBER; "80" secure (true|false) "false" use-keep-alives CDATA #IMPLIED virtual-hosts CDATA #IMPLIED >
この項では、default-web-site.xml
およびhttp-web-site.xml
を含む、WebサイトのXML構成ファイルの階層表現について説明します。
<web-site cluster-island="..." display-name="..." host="..." log-request-info="..." max-request-size="..." secure="..." protocol="..." port="..." use-keep-alives="..." virtual-hosts="..."> <description> <frontend host="..." port="..."> <web-app application="..." load-on-startup="..." access-log="..." max-inactivity-time="..." name="..." root="..." shared="..."> <default-web-app application="..." load-on-startup="..." max-inactivity-time="..." name="..." root="..." shared="..."> <user-web-apps max-inactivity-time="..." path="..."> <access-log format="..." path="..." split="..." suffix="..."> <odl-access-log path="..." max-file-size="..." max-directory-size="..."> <ssl-config keystore="..." keystore-password="..." needs-client-auth="..." provider="..." factory="..."> <property name="..." value="...">
これは、Oracle Application Server環境のOC4Jで提供されるデフォルト・ファイルに類似した、サンプルのdefault-web-site.xml
ファイルです。
<?xml version="1.0" standalone='yes'?> <!DOCTYPE web-site PUBLIC "Oracle Application Server XML Web-site" "http://xmlns.oracle.com/ias/dtds/web-site.dtd"> <web-site host="myhost" port="0" protocol="ajp13" display-name="Default Oracle Application Server Java WebSite" cluster-island="1" > <!-- Uncomment the following line when using clustering --> <!-- <frontend host="your_host_name" port="80" /> --> <!-- The default web-app for this site, bound to the root --> <default-web-app application="default" name="defaultWebApp" root="/j2ee" /> <web-app application="default" name="dms" root="/dmsoc4j" /> <web-app application="default" name="admin_web" root="/adminoc4j" /> <!-- Access Log, where requests are logged to --> <access-log path="../log/default-web-access.log" /> <!-- Uncomment this if you want to use ODL logging capabilities <odl-access-log path="../log/default-web-access" max-file-size="1000" max-directory-size="10000"/> --> </web-site>
|
![]() Copyright © 2002, 2005 Oracle Corporation. All Rights Reserved. |
|