- SCA バインディング付きエクスポートを、マイグレーション済みのモジュールからこの新しいモジュールの
アセンブリー・エディターにドラッグ・アンド・ドロップします。
これにより、SCA バインディング付きインポートが作成されます。
クライアントがこのインポートを参照できるようにするには、スタンドアロン参照を作成する必要があります。
- パレットでスタンドアロン参照項目を選択します。
アセンブリー・エディターのキャンバスを一回クリックして、この新規モジュールの新しいスタンドアロン参照を作成します。
- ワイヤー・ツールを選択し、サービス参照をクリックしてから「インポート」をクリックします。
- ソース・ノード上にマッチング参照が作成されるというアラートが表示されたら、「OK」をクリックします。
- 「Java クライアントが Java インターフェースを使用するには、この参照を使用するほうが簡単です。WSDL 参照を互換性のある Java 参照に変換しますか?
(It is easier for a Java client to use a
Java interface with this reference - would you like to convert the WSDL reference
to a compatible Java reference?)」という質問が出されます。
- クライアントがこのサービスをルックアップして Java™ クラスとしてキャストし、Java インターフェースを使用して呼び出すようにするには、
「はい」と答えます。
この新しい Java インターフェースは WSDL ポート・タイプから名前を取得します。
インターフェースのパッケージは WSDL ポート・タイプの名前空間から派生します。
WSDL ポート・タイプに定義された操作ごとにメソッドが定義され、それぞれの WSDL メッセージ・パーツは
インターフェース・メソッドに対する引数として表されます。
- クライアントがこのサービスをルックアップし、
汎用 com.ibm.websphere.sca.Service インターフェースを使用して、
これを汎用 SCA サービスとしての呼び出し操作で呼び出すようにするには、
「いいえ」と答えます。
- アセンブリー・エディターでスタンドアロン参照のコンポーネントを選択して、スタンドアロン参照の名前をより分かりやすい
名前にします (該当する場合)。
「プロパティー」ビューの「詳細」タブに移動し、作成した参照にドリルダウンし、それを選択して名前を変更します。
com.ibm.websphere.sca.ServiceManager インスタンスの locateService メソッドを呼び出すときに、
クライアントがこの名前を使用する必要があるため、
この参照で選択した名前を覚えておいてください。
- 「保管」をクリックして、アセンブリー図を保管します。
サーバーで実行されているマイグレーション済み EJB モジュールにアクセスするために、クライアントはこの
新規モジュールをローカル・クラスパス上に持つ必要があります。
以下に、「CustomerInfo」タイプのサービスでのクライアント・コードの例を示します。
// 新規 ServiceManager を作成する
ServiceManager serviceManager = ServiceManager.INSTANCE;
// CustomerInfo サービスの位置を指定する
CustomerInfo customerInfoService = (CustomerInfo) serviceManager.locateService ("<name-of-standalone-
reference-from-previous-step");
// Invoke the CustomerInfo service
System.out.println(" [getMyValue] getting customer info...");
DataObject customer = customerInfoService.getCustomerInfo(customerID);
クライアントは、メッセージの構成方法を変更する必要があります。
以前、メッセージは WSIFMessage クラスに基づいていましたが、現在は commonj.sdo.DataObject クラスに基づいています。