Hitachi

Cosminexus V11 アプリケーションサーバ Webサービス開発ガイド


11.4.3 プロパティとフィーチャの設定

Clientオブジェクトにはプロパティとフィーチャを格納した変更可能なプロパティマップが含まれています。

これ以降,プロパティとフィーチャは区別しないで「プロパティ」と総称します。

〈この項の構成〉

(1) プロパティマップの初期化

変更可能なプロパティマップは,Clientオブジェクトの生成時に初期化されます。プロパティマップを初期化する方法について次に説明します。

方法1

DefaultClientConfigオブジェクトをパラメタに指定して,Clientクラスのcreate(ClientConfig cc)スタティックメソッドを呼び出し,Clientオブジェクトを生成します。この場合,Clientオブジェクトの変更可能なプロパティマップは,DefaultClientConfigオブジェクトが持つプロパティによって初期化されます。

注※

DefaultClientConfigオブジェクトにプロパティが含まれれば,その値で初期化されます。DefaultClientConfigオブジェクトに含まれないプロパティは,動作定義ファイルの設定で初期化されます。

[図データ]

方法2

Clientクラスのcreate()スタティックメソッドでClientオブジェクトを生成します。この場合,Clientオブジェクトの変更可能なプロパティマップは,動作定義ファイルによって初期化されます。

[図データ]

動作定義ファイルの詳細については,「13.1 動作定義ファイル」を参照してください。

(2) 変更可能なプロパティマップの構造

HttpURLConnectionクラスに関連する四つのプロパティは,ClientクラスのgetProperties()メソッドで取得したプロパティマップを変更したり,プロパティそれぞれに対応するsetterメソッドを使用して設定したりできます。

なお,HttpURLConnectionに関連する四つのプロパティ以外は,対応するsetterメソッドがありません。プロパティを設定する場合はClientクラスのgetProperties()メソッドで取得したプロパティマップを変更してください。

変更可能なプロパティマップの構造について次の図に示します。

なお,サポートしているプロパティの一覧については「25.1.1 サポートするプロパティとフィーチャ」を参照してください。

図11‒3 変更可能なプロパティマップの構造

[図データ]

HTTP通信に先立って,JAX-RSエンジンは図中のHttpURLConnectionクラスに関連する四つのプロパティの値をそのままHttpURLConnectioinにコピーします(値の検証はしません)。したがって,値が不正な場合,HTTP通信の実行前または実行中にHttpURLConnectionクラスが例外をスローすることがあります。なお,値がnullの場合はコピーされないで,無視されます。

ClientRequestクラスにも同じ形式の変更可能なプロパティマップがあります。したがって,Clientクラスのhandle()メソッドを使用してHTTP通信を行う場合,ユーザプログラムはClientRequestオブジェクトを介してプロパティを設定することもできます。仕組みを次の図で説明します。

図11‒4 変更可能なプロパティマップのコピーの仕組み

[図データ]

JAX-RSエンジンは,同じプロパティがClientオブジェクトのプロパティマップに存在しない場合だけ,ClientRequestオブジェクトのプロパティマップに含まれるプロパティをClientオブジェクトのプロパティマップにコピーします。