JAX-RPC クライアントからバスを直接介しての Web サービス・メッセージの送信
このタスクを使用して、JAX-RPC クライアントを再ターゲットすることで、バスを介して Web サービス・メッセージを送信します。
このタスクについて
Java™ API for XML-based remote procedure calls (JAX-RPC) クライアント・アプリケーションは、Web サービス要求メッセージおよび応答メッセージを送受信します。IBM JAX-RPC ランタイム環境を使用する JAX-RPC クライアント・アプリケーションは、 アプリケーションの作成対象の WSDL 文書内のバインディング、 およびランタイムで使用される構成データに応じて、 さまざまな方法でメッセージを送受信できます。
JAX-RPC クライアントおよびサーバーのプログラミング・モデルを含む、基本 JAX-RPC プログラミング概念の概要は、JAX-RPC の入門を参照してください。
JAX-RPC クライアントを使用してサービス統
合バスを介して
メッセージを送信するには、以下の 2 つの方法があります。
- SOAP バインディング (SOAP over HTTP または SOAP over JMS) を使用して、メッセージを間接的にエンドポイント・リスナー経由でインバウンド・サービスに渡します。 この方法は、クライアント・アプリケーション・コンテキスト内で実行する必要のある SOAP 固有の JAX-RPC ハンドラー が存在する場合に使用されます。
- このトピックで説明するように JAX-RPC クライアント・アプリケーショ ンの"再ターゲット"によって、宛先のサービス統合バスに直接メッセージを渡します。
再ターゲットでは、次の 2 つの値を
クライアント・アプリケーションのデプロイメント記述子に設定するか、
またはそれらを実行時に動的にクライアント・アプリケーション内部から指
定します。
- バインディング名前空間は、クライアントが 直接メッセージング・バスを使用することを示す場合に設定されます。
- エンドポイント・アドレスは、特定の宛先、 およびクライアントが使用するメッセージのフォーマット設定 (オプション) を示す場合に設定されます。
宛先は、JAX-RPC クライアントが使用しているメッセージの
ポート・タイプもわかるように構成される必要があります。これを行うには以下の 2 つの方法があります。
- アウトバウンド・サービスを作成します。アウトバウンド・サービスとは、外部から提供される Web サービスのことです。 この場合、JAX-RPC クライアントからの要求は、サービス宛先を通過してから、アウトバウンド・サービス構成で定義されたサービス・プロバイダーに送信されます。
- インバウンド・サービスを作成します。 インバウンド・サービスとは、メッセージング・バス内外のいずれかで提供されるサービスのことです。インバウンド・サービスは、存在する宛先であればどこにでも作成できます。インバウンド・サービスを作成すると、 WSDL ポート・タイプが宛先に関連付けられます。 インバウンド・サービスは 1 つの宛先に対して複数構成することが可能なため、 インバウンド・サービスを持つ宛先に再ターゲットを行うときには、 クライアント・アプリケーションは、宛先名とインバウンド・サービス名の両方を指定する必要があります。 この場合、 JAX-RPC クライアントからの要求は、その宛先を通過してから 、最初の宛先で行われたルーティングに従って サービス統合バスに移動します。
JAX-RPC クライアントを使用して Web サービス・メッセージを直接宛先に送信するには、 以下のステップを実行します。
手順
- JAX-RPC クライアント・アプリケーションを作成します。
- JAX-RPC クライアント・アプリケーションがメッセージを交換するアウトバウンド・サービス、またはインバウンド・サービスを作成します。
- 管理コンソールを使用して、JAX-RPC クライアント・アプリケーションのポート情報にアクセスします。詳細については、Web サービス・クライアント・バインディングの構成および Web services client port information で説明します。
- JAX-RPC クライアント・アプリケーションのデフォルトの SOAP バインディングをオーバーライドします。 バインディング名前空間を http://www.ibm.com/ns/2004/02/wsdl/mp/sib に変更します。
- JAX-RPC クライアント・アプリケーションが Web サービス要求を送信するのに使用するエンドポイントをオーバーライドします。 新しいエンドポイントには、sib: URL 構文を使用し、アウトバウンド・サービス宛先名、または インバウンド・サービス名とそれに対応する宛先名、のどちらかを含むようにします。
次のタスク
バインディング名前空間を変更した後は、 再ターゲットされるポートに構成された JAX-RPC ハンドラー・リストはすべて無視されます。SOAP バインディングの WSDL に対して作成されたクライアントの場合、バスに直接再ターゲットすると、ハンドラーは無視されます。ただし、サービスにバウンドされない WSDL に対してクライアントが作 成されている場合は、バスへの再ターゲットはバインディング名前空間の変更とみなされないため、ハンドラー情報は保持されます。この場合、JAX-RPC ハンドラーは、SDOMessageContext サブクラスで呼び出されます。
関連参照情報: