JAX-RPC Web サービス・クライアントに対する拡張の実装
WebSphere® Application Server は、Java™ API for XML-based RPC (JAX-RPC) プログラミング・モデルを使用する Web サービス・クライアントに対する拡張を提供します。
このタスクについて
JAX-RPC クライアント・プログラミング・モデルに対する次の拡張を使用して Web サービスをカスタマイズできます。
手順
- REQUEST_SOAP_HEADERS プロパティーと RESPONSE_SOAP_HEADERS プロパティーを JAX-RPC クライアント Stub に設定すると、Web サービス・クライアントが暗黙の SOAP ヘッダーを送信または検索できるようになります。 暗黙の SOAP ヘッダーとは、WSDL ファイルで明示的に定義されていない SOAP ヘッダーのことです。 暗黙の SOAP ヘッダー・ファイルは、以下の説明の 1 つに当てはまります。
- WSDL ファイルのバインディング内の SOAP ヘッダーとしてメッセージ・パーツが宣言されているが、メッセージ定義は、WSDL ファイル内の portType によって参照されていない。
- WSDL ファイルに含まれていないエレメント。
ハンドラーおよびサービス・エンドポイントは、SOAP with Attachments API for Java (SAAJ) データ・モデルを使用して、暗黙的または明示的な SOAP ヘッダーを取り扱うことができます。
トランスポート・ヘッダーの送信または検索のためのクライアント・コードの変更方法については、JAX-RPC による暗黙の SOAP ヘッダーの送信または JAX-RPC による暗黙の SOAP ヘッダーの受信に関する情報を参照してください。
- REQUEST_TRANSPORT_PROPERTIES プロパティーと RESPONSE_TRANSPORT_PROPERTIES プロパティーを設定すると、Web サービス・クライアントがトランスポート・ヘッダーを送信または検索できるようになります。
Stub オブジェクトまたは Call オブジェクトでプロパティーを設定します。
トランスポート・ヘッダーを送信または検索するようにクライアント・コードを変更すると、サーバーからの発信要求または着信応答のトランスポート・ヘッダー内 にある特定の情報を送信または検索できます。HTTP トランスポートを使用する要求または応答の場合、HTTP ヘッダー内で情報が送信または検索されます。同様に、 Java Message Service (JMS) トランスポートを使用する要求または応答 の場合、JMS メッセージのプロパティー内で情報が送信または検索されます。
トランスポート・ヘッダーの送信または検索のためのクライアント・コードの変更方法については、JAX-RPC によるトランスポート・ヘッダーの送信または JAX-RPC によるトランスポート・ヘッダーの取得に関する情報を参照してください。
Web サービス・クライアントを使用可能にして、トランスポート・ヘッダーを送信または取得する方法について詳しくは、トランスポート・ヘッダー・プロパティーのベスト・プラクティスに関する情報を参照してください。
- javax.xml.rpc.ServiceFactory.loadService() メソッドのサポートを実装します。 loadService メソッドは、生成されたサービス実装クラスのインスタンスを、実装に固有の方法で作成します。 loadService メソッドは、JAX-RPC 1.1 の新規機能であり、以下の 3 つのシグニチャーを含みます。
- public.javax.xml.rpc.Service loadService (Class serviceInterface)
JAX-RPC 仕様で記載されているように、このメソッドは、サービス・インターフェースに対して生成されたサービス実装を戻します。Web サービス仕様および API 資料を参照して、JAX-RPC 仕様を検討してください。
- public.javax.xml.rpc.Service loadService (URL wsdlDocumentLocation、Class serviceInterface、Properties properties)このメソッドは、loadService (Class serviceInterface) のように動作します。以下のパラメーターを無視するためです。
- wsdlDocumentLocation
- properties
- public.javax.xml.rpc.Service loadService (URL wsdlDocumentLocation、QName serviceName、Properties properties)
このメソッドは、オプションの名前空間からパッケージへのマッピング情報を使用して、指定されたサービスに対して生成されたサービス実装を戻します。
- wsdlDocumentLocation - 無視
- serviceName - サービスの QName (名前空間、ローカル)
- properties - このパラメーターが非ヌルである場合、名前空間からパッケージへのマッピング・エントリーを含みます。各プロパティーのエントリー・キーは、名前空間に対応したストリングです。各プロパティーのエントリー値は、Java パッケージ名に対応したストリングです。
プロパティーの引数が、QName serviceName 引数の名前空間部分と一致するキー (名前空間) のエントリーを含む場合、エントリー値 (javaPackage) は、サービス実装の検索時に、パッケージ名として使用されます。
- public.javax.xml.rpc.Service loadService (Class serviceInterface)
- 特定の XML スキーマ・タイプの具象カスタム・データ・バインダーを提供するために、CustomBinder インターフェースを実装します (JAX-RPC アプリケーションのみ)。 カスタム・データ・バインダーは、XML スキーマ・タイプを Java オブジェクトにマップするのに使用されます。 カスタム・データ・バインダーは、現行の Java API for XML-based Remote Call Procedure (JAX-RPC) 仕様ではサポートされていない XML スキーマ・タイプに対するバインディングを提供します。WebSphere Application Server では、特定の XML スキーマ・タイプに対してこれらのカスタム・バインディングを実装する、CustomBinder と呼ばれる Java Platform, Enterprise Edition (Java EE) プログラミング・モデルの拡張を提供しています。CustomBinder インターフェースには、deserialize および serialize メソッドのほかに、以下の 3 つのプロパティーがあります。
- XML スキーマ・タイプの QName
- QName 有効範囲
- Java 型
カスタム・データ・バインダーは、Java オブジェクトと SOAPElement インターフェース間で変換を行うためのシリアライズ・メソッドやデシリアライズ・メソッドを定義します。カスタム・データ・バインダーはランタイム・システムに追加され、SOAPElement を使用して Web サービス・ランタイムと対話をします。これらは、カスタム・バインディング・プロバイダーを使用することで、ランタイムに追加されます。 詳しくは、カスタム・データ・バインダーおよびカスタム・バインディング・プロバイダーに関する情報を参照してください。特定の XML スキーマ・タイプの具象カスタム・データ・バインダーを提供するために CustomBinder インターフェースを実装する方法に関しては、CustomBinder インターフェース の資料を参照してください。
サブトピック
JAX-RPC アプリケーションのカスタム・データ・バインダー
カスタム・データ・バインダー は、Java オブジェクトを持つ XML スキーマ・タイプをマップするために使用します。 カスタム・データ・バインダーは、現行の Java API for XML-based Remote Call Procedure (JAX-RPC) 仕様ではサポートされていない XML スキーマ・タイプに対するバインディングを提供します。JAX-RPC アプリケーションのカスタム・バインディング・プロバイダー
カスタム・バインディング・プロバイダー は、宣言メタデータ・ファイルを持つカスタム・データ・バインダー・クラスのパッケージです。 カスタム・バインディング・プロバイダーの主な目的は、関連するカスタム・データ・バインダーを統合して、特定のユーザー・シナリオをサポートすることです。カスタム・バインディング・プロバイダーは、カスタム・データ・バインダーをエミッター・ツールや ランタイム・システムに接続するために使用します。そうすることで、エミッター・ツールは適切な成果物を生成することができ、 ランタイム・システムは既存タイプのマッピング・システムを拡大し、適用されたカスタム・データ・バインダーを反映して 呼び出すことができます。JAX-RPC アプリケーション用の CustomBinder インターフェース
WebSphere Application Server には、Java API for XML-based Remote Call Procedure (JAX-RPC) アプリケーションが特定の XML スキーマ・タイプの具象カスタム・データ・バインダーを提供できるようにするために実装可能な、CustomBinder インターフェースが定義されています。JAX-RPC アプリケーション用のカスタム・データ・バインダーをデプロイするための使用パターン
カスタム・データ・バインダーは、XML スキーマ・タイプを Java オブジェクトにマップするのに使用されます。 カスタム・データ・バインダーは、現行の Java API for XML-based Remote Call Procedure (JAX-RPC) 仕様ではサポートされていない XML スキーマ・タイプに対するバインディングを提供します。WebSphere Application Server では、特定の XML スキーマ・タイプに対してこれらのカスタム・バインディングを実装する、CustomBinder と呼ばれる Java Platform, Enterprise Edition (Java EE) プログラミング・モデルの拡張を提供しています。カスタム・バインディング・プロバイダーは、ランタイムにインポートされるカスタム・データ・バインダーのパッケージです。JAX-RPC を使用した暗黙の SOAP ヘッダーの送信
既存の Java API for XML-based RPC (JAX-RPC) Web サービス・クライアントで暗黙の SOAP ヘッダー内に値を送信できます。暗黙の SOAP ヘッダーを送信するためにクライアント・コードを変更すると、Web サービスの発信要求内にある特定の情報を送信できます。JAX-RPC を使用した暗黙の SOAP ヘッダーの受信
既存の Java API for XML-based RPC (JAX-RPC) Web サービス・クライアントで暗黙の SOAP ヘッダー内から値を取得できます。暗黙の SOAP ヘッダーを受信するためにクライアント・コードを変更すると、着信 Web サービス応答内の固有の情報を受信できます。JAX-RPC によるトランスポート・ヘッダーの送信
既存の Java API for XML-based RPC (JAX-RPC) Web サービス・クライアントを有効にすると、 トランスポート・ヘッダーを使用して、Web サービス要求とともにアプリケーション定義情報を 送信することができます。JAX-RPC を使用したトランスポート・ヘッダーの取得
既存の Java API for XML-based RPC (JAX-RPC) Web サービス・クライアントでトランスポート・ヘッダー から値を取得できます。HTTP を使用する要求の場合、トランスポート・ヘッダーは、HTTP 応答メッセージ で検出される HTTP ヘッダーから取得されます。Java Message Service (JMS) を使用する要求の場合、トランスポート・ヘッダーは、JMS 応答メッセージ で検出される JMS メッセージ・プロパティーから取得されます。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_extendpm
ファイル名:twbs_extendpm.html