サービス コントロール : 他の Web サービスを使用する

サービス コントロールは他の Web サービスへのインタフェースを提供し、サービスが他のサービスのメソッドを呼び出したり、コールバックを処理したりすることを可能にします。他のサービスは、WebLogic Workshop で開発したサービスでも、WSDL ファイルを使用可能な Web サービスでもかまいません。

ほとんどのコントロールと同じく、サービス コントロールは CTRL ファイルで定義されます。特定のサービス コントロールの CTRL ファイルが、特定の Web サービスと通信する方法となります。Web サービスの名前および場所は、CTRL ファイルで明示的に記述されています。

すべてのサービス コントロールは、weblogic.jws.control.ServiceControl 基本クラスを拡張します。

WebLogic Workshop のコントロールの詳細については、コントロール : Web サービスからリソースを使用するを参照してください。

パブリック コントラクトについて

Web サービスでは、いわゆるパブリック コントラクトを定義および公開します。一般に、パブリック コントラクトは WSDL ファイルで表現されます。

WSDL ファイルの詳細については、WSDL ファイル : Web サービスの記述を参照してください。

パブリック コントラクトでは、Web サービスが実行可能な処理と、処理にアクセスし、処理の結果を受け取るためにサービスに送信されるメッセージのフォーマットを記述します。コントラクトは、Web サービスの開発者が完全に管理できるので、Web サービスのクライアントが変更することはできません。

WebLogic Workshop で開発した Web サービスのパブリック コントラクトは、Web サービスの JWS ファイルですべて定義します。このファイルは、@jws:operation でマークしたすべてのメソッドと、Callback インタフェースのすべてのメンバーのコレクションです。WSDL ファイルを JWS ファイルから生成すると、パブリック コントラクトは WSDL 標準に従って表現されます。

サービス コントロールと Web サービスの関係

WebLogic Workshop では、サービス コントロールは、Web サービスの仲介役、つまりプロキシとして機能します。Web サービス A は、Web サービス B の処理を呼び出すために、B 用のサービス コントロールの Java メソッドを呼び出します。サービス コントロールは、Java メソッド呼び出しを適切なメッセージに変換してから Web サービス B に送信し、Web サービスで使用可能なプロトコルによって Web サービス B と通信します。また、サービス コントロールは、B から返されたメッセージをコールバック ハンドラと呼ばれるサービス A の Java メソッド呼び出しに変換します。

このような方法で、サービス コントロールは、アプリケーションレベルの Java コードを実装するだけでサービス A がサービス B を使用することを可能にします。サービス A の開発者には、メッセージ フォーマットまたはプロトコルについての詳しい知識は必要ありません。

既存のサービス コントロールを使用する

サービス コントロールの CTRL ファイルが自分の Web サービスから使用する別の Web サービス用に存在している場合、サービス コントロールのインスタンスを自分の Web サービスに追加するだけです。

サービス コントロールを Web サービスに追加するには、[サービス コントロールの追加] ダイアログを使用します。[サービス コントロールの追加] ダイアログにアクセスするには、メニュー バーの [サービス] メニュー、デザイン ビューのサービスの上で右クリックしたときのコンテキスト メニュー、またはデザイン ビューの右上隅の [コントロールの追加] オプション メニューを使用します。

上の画像は、BankControl.ctrl CTRL ファイルのインスタンスである bank というサービス コントロール インスタンスを作成しているところです。

新しいサービス コントロールを作成する

新しいサービス コントロールの作成方法については、新しいサービス コントロールを作成するを参照してください。

サービス コントロールをカスタマイズする

サービス コントロールのデフォルト動作を変更するために、サービス コントロールの CTRL ファイルでカスタマイズできる部分がいくつかあります。

サービス コントロールのカスタマイズの詳細については、サービス コントロールをカスタマイズする : 概要を参照してください。

サービス コントロールのサンプル

サービス コントロールを使用するサンプル

AdvancedTimer.jws サンプル

Conversation.jws サンプル

CreditReport.jws サンプル

Investigate.jws サンプル

サービス コントロールをカスタマイズするサンプル

QuoteClient.jws サンプル

関連トピック

WebLogic Workshop プロジェクト

CTRL ファイル : コントロールを実装する

ServiceControl インタフェース