Webサービスクライアントの実行時では,カタログファイルを配置するだけでカタログ機能を利用できます。WSDLを変更したり,cjwsimportコマンドで-catalogオプションを指定して,開発済みのWebサービスクライアントを作成し直したりする必要はありません。カタログファイルの配置については,「27.6.2 カタログファイルの配置」を参照してください。
WSDLからサービスクラスにマッピングされたWSDLロケーション,およびサービスクラスのコンストラクタの引数に指定したWSDLロケーションをカタログファイルのマッピング情報に従って別のWSDLロケーションにマッピングし,サービスクラスを生成します。
Webサービスクライアントの実行時におけるカタログ機能のマッピング対象について表27-3に,Webサービスクライアントの実行時に利用するWSDLの記述におけるマッピング対象を表27-4に示します。
表27-3 Webサービスクライアントの実行時におけるカタログ機能のマッピング対象
項番 | マッピング対象 | サポート |
---|---|---|
1 | サービスクラスのデフォルトのWSDLロケーション※1 | ○ |
2 | サービスクラスのコンストラクタの引数に指定したWSDLロケーション※1 | ○ |
3 | javax.xml.ws.ServiceクラスのAPIの引数に指定したWSDLロケーション※2 | ○ |
4 | javax.xml.ws.WebServiceRefアノテーションのwsdlLocation要素に指定したWSDLロケーション※3 | ○ |
表27-4 Webサービスクライアントの実行時に利用するWSDLの記述におけるマッピング対象
項番 | 要素 | 属性 | サポート |
---|---|---|---|
1 | wsdl:import | namespace | × |
2 | location | ○ |
Webサービスクライアントの実行時のカタログ機能は,サービスクラスの生成時にXMLスキーマを必要としないので,次のマッピングを実行しません。
このため,カタログファイルにはWSDLロケーションに関するマッピング情報だけを記述してください。
Webサービスクライアントでサービスクラスを生成するときに,カタログ機能を利用してWSDLロケーションをマッピングする例を次の図に示します。
図27-2 WSDLロケーションのマッピング例
この図の例では,サービスクラスのコンストラクタの引数に,リモートのWSDLロケーションを指定しています。また,次のようにカタログ機能が無効な場合と有効な場合の流れを示しています。