Oracle® Fusion Middleware Oracle WebCenter Sitesプロパティ・ファイル・リファレンス 12c (12.2.1.1) E77291-01 |
|
![]() 前 |
![]() 次 |
HTTPClientアクセスの詳細は、次のトピックを参照してください。
WebCenter Sitesでは、すべてのHTTPアクセスの基本ライブラリとしてApache Commons HTTPClientが使用されます。HTTPClientは、バージョン3以降では、http://jakarta.apache.org/commons/httpclient/preference-api.html
に投稿されるパラメータをサポートします
パラメータは次のように機能します。
HTTPClientパラメータは、HttpClientコンポーネントのランタイム動作を変更します。たとえば、Post
操作でデフォルトとは異なるタイムアウトを設ける場合、その実行前にPostMethod.getParams().setParam("timeout", 1000)
をコールできます。
HTTPClientパラメータは、階層形式でリンクできます。上から下の順序で、階層のレベルは、グローバル、クライアント、ホストおよびメソッドになります。上位レベルでパラメータに設定される値は、下位レベルの同等のパラメータの値によってオーバーライドされます。
HTTPClientは、その柔軟性にもかかわらず、パラメータの設定がプログラムのみで行われるという制限があります。パラメータ値をユーザーが指定したり、自動的にライブラリから取得できる場合、構成ファイルを書き込むことはできません。ただし、WebCenter Sites統合では、次の項の「HTTPClientのWebCenter Sitesとの統合」で説明するようにこの制限がなくなっています。
注意:
WebCenter Sitesでは、http://jakarta.apache.org/commons/httpclient/preference-api.html
に投稿されるパラメータが使用されます。パラメータは、表32-1にリストされており、(前述のサイトから複製された)説明も記載されています。HttpClientで定義されているように、パラメータとその機能の変更は自動的にサポートされません。
WebCenter Sitesは、ユーザーが構成可能なプロパティ・ファイルの作成をWebCenter Sitesユーザーに許可することでHTTPClient機能を抽象化します。ファイルの作成後、ユーザーは必要なHTTPClientパラメータ(値がデフォルト値と異なるパラメータ)をそのファイルに移入し、プロパティ・ファイルをクラスパスに配置します。WebCenter Sites は、クラスパスからプロパティ・ファイルをロードし、事前定義済の構文に従ってパラメータを解析します(表32-1を参照)。HttpAccess APIは、パラメータを取得して、それらをランタイムで適用します。
WebCenter Sitesは、レベルが、HttpAccess Java API (WebCenter Sites Java Docsで提供される)で定義されるレベルと直接対応するパラメータ階層をサポートします。レベルごとに、1つ以上のプロパティ・ファイルを実装に応じて作成でき、HTTPClientパラメータの任意の組合せを移入できます。レベルとプロパティ・ファイルの命名規則を次に示します。
注意:
プロパティ・ファイルは、WebCenter Sitesプロパティ・エディタの外部でテキスト・ファイルとして作成する必要があります。プロパティ・ファイルの名前は、大文字と小文字が区別されるため、すべて小文字にする必要があります。
HttpAccess (レベル1)
プロパティ・ファイル: httpaccess.properties
。ユーザーは、パラメータとその値をhttpaccess.properties
ファイルで指定します。このファイルは、作成されるすべてのHttpAccessインスタンスに適用されます。
オーバーライド: HttpAccessレベルのパラメータ値は、レベル2、3および4 (次の説明を参照)の同等のパラメータの値でオーバーライドされます。
HostConfig (レベル2)
プロパティ・ファイル: <プロトコル>-<ホスト名>-<ポート番号>.properties
。ユーザーは、ホストに固有のパラメータを各プロパティ・ファイルで指定します。たとえば、ポート7001でアクセス可能なtargetserver
というホストの場合、プロパティ・ファイルの名前はhttp-targetserver-7001.properties
となり、このファイルには、そのホストに固有のHttpClientパラメータが含まれます。
オーバーライド: HostConfigレベルのパラメータ値は、HttpAccessレベルの同等のパラメータの値をオーバーライドします。
リクエスト(レベル3)
プロパティ・ファイル: <リクエスト・タイプ>.properties
。ここで、<リクエスト・タイプ>
は、post
、get
またはlogin
のいずれかの値を取ります。ユーザーは、リクエストに固有のパラメータを指定します。たとえば、post.properties
は、post
のインスタンスに適用可能なHttpClientパラメータを指定します。
オーバーライド: リクエスト・レベルのパラメータ値は、HttpAccessレベルおよびHostConfigレベルの同等のパラメータの値をオーバーライドします。
ホスト別、リクエスト別(レベル4)
プロパティ・ファイル: <リクエスト・タイプ>-<プロトコル>-<ホスト名>-<ポート番号>.properties
。ここで、<リクエスト・タイプ>
は、 post
、get
またはlogin
のいずれかの値を取ります。このプロパティ・ファイルのパラメータは、リクエスト・レベルのパラメータとして機能します。ただし、これらは特定のホストに適用されます。
オーバーライド: 「ホスト別、リクエスト別」レベルで指定されたパラメータ値は、その特定のホストについて、HttpAccessレベル、HostConfigレベルおよびリクエスト・レベルの同等のパラメータの値をオーバーライドします。次の例では、オーバーライドが「ホスト別、リクエスト別」レベルからどのように有効になるかを示します。この例では、ユーザーはlogin-http-m2-7002.properties
というプロパティ・ファイルを定義します。ここでは、http.connection.timeout
を100秒に指定します。タイムアウトは、m2
というホスト・マシンとポート7002に厳密に適用されます。タイムアウト値は、上位レベルでm2に指定されるすべてのタイムアウト値をオーバーライドします。他のすべてのホスト・マシンの場合、タイムアウト値は影響を受けません。
WebCenter Sitesは、HttpClientによって定義されるすべてのパラメータを、外部から構成可能な方法でサポートします。さらに、WebCenter Sitesは、ユーザーが外部でパラメータを構成できるようにして、4番目のレベル(ホスト別、リクエスト別)でパラメータを指定しやすくすることでHttpClientの機能を拡張します。
HttpClientでサポートされるすべてのパラメータの他に、WebCenter SitesのHttpAccess APIでは、httpaccess.properties
で構成プロパティcs.SecureProtocolSocketFactory
を定義します。このプロパティは、SSL (Secure Socket Layer)接続に使用されるプロトコル・ソケット・ファクトリを指定します。http://jakarta.apache.org/commons/httpclient/sslguide.html
で3つの実装を入手できます。自己署名証明書を使用するホストにSSLで接続する場合、次の内容を構成する必要があることに注意してください。
cs.SecureProtocolSocketFactory=org.apache.commons.httpclient. contrib.ssl.EasySSLProtocolSocketFactory
WebCenter Sitesには、このEasySSLProtocolSocketFactory
クラスは用意されていません。このクラスはhttp://jakarta.apache.org/commons/httpclient/sslguide.html
で取得できます。(すぐ上のリンクにある)Apache実装はSunに固有のため、SunおよびIBM JDKでは必ず異なる形式で構築してください。あるいは、HttpClientドキュメントに基づき、各自のソケット・ファクトリ実装を作成できます。
HttpAccess APIはパラメータを直接サポートしないため、パラメータを明示的に設定できないHttpClient階層には2つのレベル(接続マネージャと接続)があることに注意してください。ただし、これは、ユーザーがそれらのパラメータを構成できないということではありません。パラメータは、HttpAccess APIの対応する上位または下位レベルで指定できます。
WebCenter Sitesユーザーは、どのような方法でWebCenter SitesのHTTPアクセスを構成するのでしょうか。ユーザーは、プロパティ・ファイルを適切な名前で作成し、それらをクラスパスに配置するのみです。インフラストラクチャでファイルを取得して使用します。これは、特にパラメータの数が指定される場合は作業量が多いように思われます。ただし、デフォルトでは、プロパティやプロパティ・ファイルを作成する必要はありません。すべてのデフォルトが使用され、HttpClientによって最適な推測値が取得されます。通常はこれが指定のシステムに対する最適な設定となります。95%は最適な推測値で十分であり、ユーザーはプロパティ・ファイルを作成する必要はありません。
稀にデフォルト以外のパラメータ値が必要な場合、WebCenter Sitesインフラストラクチャでは、ユーザーにプロパティ・ファイルでの構成の指定を許可することで、値を実装できるようにします。これにより、HttpClient自体が構築基盤である構成機能一式がユーザーに提供されます。
表32-1では、Apache Commons HttpClientでサポートされるパラメータについて説明します。表の説明は、次のサイトから複製されたものです。
http://jakarta.apache.org/commons/httpclient/preference-api.html
構文とデフォルト値は、WebCenter Sitesに固有であるため、Oracleで定義されています。構文はわかりやすく、次の表の「構文」フィールドは空白のままになっています。
パラメータとその機能の変更は自動でサポートされないことに注意してください。次の表の情報は、Oracleで更新が発行されるまで有効です。
HttpClientパラメータのサポートに加えて、WebCenter Sitesでは次のプロパティを定義します。
プロパティ: cs.SecureProtocolSocketFactory
使用: httpaccess.properties
ファイルにのみ適用可能
説明: 開いているSSL Socket接続を使用したクラスを定義
デフォルト: 空。HttpClientのJSSEベースのデフォルト実装が使用されます。詳細はhttp://jakarta.apache.org/commons/httpclient/sslguide.html
を参照してください。
表32-1 HttpClientパラメータ
名前 | 説明 |
---|---|
認証を先制して試行するかどうかを定義します。 型: Boolean デフォルト値: |
|
失効した接続のチェックを使用するかどうかを決定します。失効した接続のチェックを無効にすると、サーバー側で閉じられた接続でリクエストを実行する際に、I/Oエラーは取得されますが、パフォーマンスはわずかに向上します。 型: Boolean デフォルト値: |
|
接続が確立されるまでのタイムアウト。値が0の場合、タイムアウトは使用されません。 型: Integer デフォルト値: |
|
デフォルトのHTTP接続マネージャ・クラス。 型: Class 構文: 完全修飾クラス名 デフォルト値: |
|
ホスト構成ごとに許可される最大接続数を定義します。これらの値は、HttpConnectionManagerの特定のインスタンスからの接続数にのみ適用されます。このパラメータは、タイプ 型: Map 構文: デフォルト値: |
|
全体に許可される最大接続数を定義します。この値は、HttpConnectionManagerの特定のインスタンスからの接続数にのみ適用されます。 型: Integer デフォルト値: |
|
HTTP接続マネージャからHTTP接続を取得する際に使用されるタイムアウト(ミリ秒単位)。 型: Long デフォルト値: |
|
解析に使用される日付パターン。パターンは、コレクションに格納され、SimpleDateFormatと互換する必要があります。 型: Collection 構文: 各要素が デフォルト値: EEE, dd MMM yyyy HH:mm:ss zzzEEEE, dd-MMM-yy HH:mm:ss zzzEEE MMM d HH:mm:ss yyyyEEE, dd-MMM-yyyy HH:mm:ss zEEE, dd-MMM-yyyy HH-mm-ss zEEE, dd MMM yy HH:mm:ss zEEE dd-MMM-yyyy H:mm:ss zEEE dd MMM yyyy HH:mm:ss zEEE dd-MMM-yyyy HH-mm-ss zEEE dd-MMM-yy HH:mm:ss zEEE dd MMM yy HH:mm:ss zEEE,dd-MMM-yy HH:mm:ss zEEE,dd-MMM-yyyy HH:mm:ss zEEE, dd-MM-yyyy HH:mm:ss z |
|
各リクエストでデフォルトによって送信されるリクエスト・ヘッダー。このパラメータは、コレクション・タイプの値を予測します。コレクションは、HTTPヘッダーを含むことが予想されます。 型: Collection 構文: デフォルト値: |
|
MultipartRequestEntityと一緒に使用するマルチパート境界文字列。このプロパティを設定しない場合、リクエストごとにランダム値が生成されます。 型: String 構文: デフォルト値: |
|
警告をトリガしないバッファ済レスポンスの最大サイズ(バイト単位)。バッファ済レスポンスがこのサイズを超えると、警告がログにトリガされます。設定しない場合、制限は1MBになります。 型: Integer デフォルト値: |
|
失敗したメソッドの再試行に使用されるメソッド再試行ハンドラ。詳細は、例外処理ガイドを参照してください。 型: HttpMethodRetryHandler 構文: 完全修飾クラス名 デフォルト値: |
|
循環リダイレクト(同じ場所へのリダイレクト)を許可するかどうかを定義します。HTTP仕様では、循環リダイレクトを許可するかどうかが十分に明確ではないため、オプションで循環リダイレクトを有効にできます。 型: Boolean デフォルト値: |
|
コンテンツ本文のエンコードに使用される文字セット。 型: String デフォルト値: |
|
Cookie管理に使用されるCookieポリシー。 型: String デフォルト値: |
|
資格証明のエンコードで使用される文字セット。定義しない場合、 型: String デフォルト値: |
|
HTTPプロトコル要素(ステータス行およびヘッダー)のエンコードおよびデコードに使用される文字セット。 型: String デフォルト値: |
|
エンティティを包含するメソッドの「Expect: 100-Continue」ハンドシェイクを有効にします。「Expect: 100-Continue」ハンドシェイクにより、リクエスト本文を含むリクエスト・メッセージを送信するクライアントは、リクエスト本文を送信する前に、(リクエスト・ヘッダーに基づき)元のサーバーがリクエストを受け入れるかどうかを判断できます。 「Expect: 100-continue」ハンドシェイクを使用すると、ターゲット・サーバーの認証を必要とするエンティティ包含リクエスト(POSTやPUTなど)のパフォーマンスが大幅に改善されます。「Expect: 100-continue」ハンドシェイクでは、HTTP/1.1プロトコルをサポートしないHTTPサーバーとプロキシに関する問題が生じることがあるため、注意して使用してください。 型: Boolean デフォルト値: |
|
非準拠サーバーからのHEADレスポンスに応答して送信されるコンテンツ本文の待機時間をミリ秒単位で設定します。パラメータを設定しないか、 型: Integer デフォルト値: |
|
追跡するリダイレクトの最大数を定義します。リダイレクトの数を制限する目的は、無限ループを防止することです。 型: Integer デフォルト値: |
|
型: Boolean デフォルト値: |
|
相対リダイレクトを拒否するかどうかを定義します。 型: Boolean デフォルト値: |
|
Cookieを単一のレスポンス・ヘッダーに置くかどうかを定義します。 型: Boolean デフォルト値: |
|
HTTPレスポンスのステータス・コードを予測する前に、無視できる行の最大数を定義します。 HTTP/1.1永続接続の場合、破損したスクリプトが不正なContent-Length (送信されたバイト数が指定の数よりも多い)を返すという問題が生じます。場合によっては、不正なレスポンスの後ではなく、次のレスポンスの前に生じることがあります。そのため、HttpClientは、このように余分な行をスキップできるようになっています。ステータス行の前のガベージおよび空の行を拒否するには、これを0に設定します。無制限を指定するには、 型: Integer デフォルト値: |
|
無効なTransfer-Encodingヘッダーを含むレスポンスを拒否するかどうかを定義します。 型: Boolean デフォルト値: |
|
HTTPメソッドで曖昧なHTTPステータス行を拒否するかどうかを定義します。 型: Boolean デフォルト値: |
|
HTTPメソッドによってデフォルトで使用されるHTTPプロトコル・バージョン。 型: HttpVersion 構文: デフォルト値: |
|
予想(Content-Lengthヘッダーで指定される数など)よりも多いバイト数がレスポンスで提供される場合のHttpClientの動作を定義します。このような余分なデータによって、キープ・アライブ・リクエストに対するHTTP接続の信頼性が低くなるため、悪質なレスポンス・データ(偽造ヘッダーなど)が原因で、その接続を使用する次のリクエストに対して不適切な結果が生じる可能性があります。このパラメータをtrueに設定する場合、余分な入力データを検出すると、ログに警告が生成されます。 型: Boolean デフォルト値: |
|
秒単位の遅延時間( 型: Integer デフォルト値: |
|
型: Integer デフォルト値: |
|
型: Integer デフォルト値: |
|
メソッドの実行時に使用されるソケットのタイムアウト( 型: Integer デフォルト値: |
|
データを待機するタイムアウトになるデフォルトのソケット・タイムアウト( 型: Integer デフォルト値: |
|
Nagleのアルゴリズムを使用するかどうかを決定します。Nagleのアルゴリズムは、送信されるセグメントの数を最小限に抑えて帯域幅の節約を試みます。アプリケーションでネットワーク待機時間を減らしてパフォーマンスを改善する必要がある場合、( 型: Boolean デフォルト値: |
|
HTTPメソッドで使用されるUser-Agentヘッダーのコンテンツ。 型: String デフォルト値: |