27.3 カタログ機能の利用(Webサービスクライアントの実行時)

Webサービスクライアントの実行時では,カタログファイルを配置するだけでカタログ機能を利用できます。WSDLを変更したり,cjwsimportコマンドで-catalogオプションを指定して,開発済みのWebサービスクライアントを作成し直したりする必要はありません。カタログファイルの配置については,「27.6.2 カタログファイルの配置」を参照してください。

WSDLからサービスクラスにマッピングされたWSDLロケーション,およびサービスクラスのコンストラクタの引数に指定したWSDLロケーションをカタログファイルのマッピング情報に従って別のWSDLロケーションにマッピングし,サービスクラスを生成します。

<この節の構成>
(1) マッピング対象
(2) 注意事項
(3) マッピング例

(1) マッピング対象

Webサービスクライアントの実行時におけるカタログ機能のマッピング対象について表27-3に,Webサービスクライアントの実行時に利用するWSDLの記述におけるマッピング対象を表27-4に示します。

表27-3 Webサービスクライアントの実行時におけるカタログ機能のマッピング対象

項番マッピング対象サポート
1サービスクラスのデフォルトのWSDLロケーション※1
2サービスクラスのコンストラクタの引数に指定したWSDLロケーション※1
3javax.xml.ws.ServiceクラスのAPIの引数に指定したWSDLロケーション※2
4javax.xml.ws.WebServiceRefアノテーションのwsdlLocation要素に指定したWSDLロケーション※3
(凡例)
○:サポートしています。
注※1
サービスクラスのWSDLロケーションについては,「15.1.9 サービスおよびポートからサービスクラスへのマッピング」の「表15-17 サービスクラスが持つメソッド」を参照してください。
注※2
javax.xml.ws.ServiceクラスWSDLロケーションについては,「19.2.2(4) javax.xml.ws.Serviceクラス」を参照してください。
注※3
javax.xml.ws.WebServiceRefアノテーションについては,「19.3 アノテーションのサポート範囲」を参照してください。

表27-4 Webサービスクライアントの実行時に利用するWSDLの記述におけるマッピング対象

項番要素属性サポート
1wsdl:importnamespace×
2location
(凡例)
○:サポートしています。
×:サポートしていません。

(2) 注意事項

Webサービスクライアントの実行時のカタログ機能は,サービスクラスの生成時にXMLスキーマを必要としないので,次のマッピングを実行しません。

このため,カタログファイルにはWSDLロケーションに関するマッピング情報だけを記述してください。

(3) マッピング例

Webサービスクライアントでサービスクラスを生成するときに,カタログ機能を利用してWSDLロケーションをマッピングする例を次の図に示します。

図27-2 WSDLロケーションのマッピング例

[図データ]

この図の例では,サービスクラスのコンストラクタの引数に,リモートのWSDLロケーションを指定しています。また,次のようにカタログ機能が無効な場合と有効な場合の流れを示しています。

カタログ機能が無効な場合
リモートにあるWSDLを読み込み,サービスクラスを生成します。
カタログ機能が有効な場合
カタログファイルのマッピング情報に従って,引数に指定したリモートのWSDLロケーションがローカルにあるWSDLロケーションにマッピングされ,ローカルにあるWSDLを読み込み,サービスクラスを生成します。