EJB Web サービスの作成: オプション 2

考慮すべき代替オプションは、EJB に Web サービスを作成できる、Rational® Application Developer Web サービス・ツールです。

注: この方法を使用してマイグレーションを試みる前に、サイト http://publib.boulder.ibm.com/infocenter/ rtnl0600/topic/com.ibm.etools.webservice.was.creation.ejb.ui.doc/tasks/twsejbw.html の情報を参照してください。
注: このオプションでは、Web サービス・ウィザードを呼び出す前に、WebSphere® Integration Developer を介して Web サービス・ランタイムが構成されていることが必要です。
EJB に Web サービスを作成するには、以下のステップに従ってください。
  1. サービスを作成している EJB のコンテナーであるエンタープライズ・アプリケーション・プロジェクトを右クリックします。
  2. 「プロパティー」を選択し、 「サーバー」プロパティーで、 「ターゲット・ランタイム (Target runtime)」が、「WebSphere Process Server v6.0」に設定され、 「デフォルト・サーバー」が、インストール済みの「WebSphere Process Server v6.0」に設定されていることを確認します。
  3. テスト・サーバーを開始し、そのサーバーにこのアプリケーションをデプロイして、 正常に開始されるようにします。
  4. J2EE パースペクティブで、「プロジェクト・エクスプローラー」ビューの「EJB プロジェクト」を展開します。 「デプロイメント記述子 (Deployment Descriptor)」を展開し、 次に「セッション Bean」カテゴリーを展開します。 Web サービスを生成する Bean を生成します。
  5. 右クリックして、「Web サービス」 > 「Web サービスの作成」を選択します。
  6. Start Web service in Web project「Web サービス・タイプ (Web Service Type)」について、 「EJB Web サービス」を選択し、 Web サービスを今すぐにデプロイしたい場合を除き、 「Web プロジェクトの Web サービスを開始 (Start Web service in Web project)」オプションのチェック・マークを外します。 「次へ」をクリックします。
  7. 右クリックした EJB がここで選択されていることを確認して、 「次へ」をクリックします。
  8. ここで、サービス・デプロイメント・オプションを構成する必要があります。 「編集...」ボタンをクリックします。 サーバー・タイプには、 「WPS Server v6.0」を選択し、 Web サービス・ランタイムには、「IBM WebSphere」 および「J2EE バージョン 1.4 (J2EE version 1.4)」を選択します。 これを行うことで有効な組み合わせを選択できない場合は、 v1.4 レベルへの J2EE プロジェクトのマイグレーションについて、 セクション『マイグレーションの準備』を参照してください。 「OK」をクリックします。
  9. サービス・プロジェクトについて、EJB が含まれている EJB プロジェクトの名前を入力します。 また、該当する EAR プロジェクトも選択します。 「次へ」をクリックします。 このとき、数分間待たなければならない場合があります。
  10. 「Web サービス EJB の構成」パネルで、使用する該当ルーター・プロジェクトを選択します (作成したいルーター Web プロジェクトの名前を選択すると、 このプロジェクトは、オリジナルの EJB と同じエンタープライズ・アプリケーションに追加されます)。 希望するトランスポート (「HTTP 上の SOAP」または 「JMS 上の SOAP」) を選択します。 「次へ」をクリックします。
  11. WSDL 定義を入れる WSDL ファイルを選択します。 Web サービスで公開したいメソッドを選択し、該当するスタイル/エンコード (文書/リテラル、RPC/リテラル、または RPC/エンコード) を選択します。 「パッケージから名前空間へのカスタム・マッピングを定義する」オプションを選択し、 EJB で使用するすべての Java™ パッケージについて、マイグレーションされる EJB 内で固有な名前空間を選択します (デフォルトの名前空間は、パッケージ名が固有ですが、同じ Java クラスを使用する別の Web サービスを作成する場合に、競合が発生する可能性があります)。 適宜、その他のパラメーターを入力します。 それぞれのスタイル/エンコードの組み合わせには、制限があります。 制限についての詳細は、http://publib.boulder.ibm.com/infocenter/rtnl0600/topic/com.ibm.etools.webservice.doc/ ref/rlimit.html を参照してください。
  12. 「次へ」をクリックし、 「Web サービスのパッケージから名前空間へのマッピング」パネルで、 「追加」ボタンをクリックし、 作成される行に EJB のパッケージ名を入力してから、 この EJB を一意的に識別するカスタム名前空間を入力します。 EJB インターフェースで使用するすべての Java パッケージに対して、マッピングの追加を続行します。
  13. 「次へ」をクリックします。 このとき、数分間待たなければならない場合があります。
  14. 「終了」をクリックします。 サービス・プロジェクトが EJB サービスのコンシューマーであった場合には、 ウィザードが完了した後、 EJB サービスを記述する生成済み WSDL ファイルをビジネス・インテグレーション・モジュール・プロジェクトにコピーする必要があります。 このプロジェクトは、 フォルダー WebContent/WEB-INF/wsdl の下の生成済みルーター Web プロジェクトの中にあります。 ビジネス・インテグレーション・モジュール・プロジェクトの更新/再ビルドを行ってください。
  15. ビジネス・インテグレーション・パースペクティブに切り替え、 マイグレーションされたモジュールを展開し、 次に「Web サービス・ポート」論理カテゴリーを展開します。
  16. 前のステップで生成されたポートを選択し、 そのポートをアセンブリー・エディターにドラッグ・アンド・ドロップして、 Web サービス・バインディング付きインポートの作成を選択します。 プロンプトが出されたら、EJB の WSDL インターフェースを選択します。 これで、5.1 で EJB を利用する SCA コンポーネントをこのインポートにワイヤリングして、 手動による再ワイヤリングのマイグレーション・ステップを完了することができます。
WebSphere Studio Application Developer Integration Edition でトップダウンのアプローチを使用していた場合は、 WSDL 定義から EJB スケルトンを生成した後、以下のステップを実行してください。
  1. 新しい Web プロジェクトを作成し、EJB スケルトンの生成元にしたい WSDL ファイルを、 この Web プロジェクトのソース・フォルダーにコピーします。
  2. EJB スケルトンの生成元にしたいポート・タイプが含まれている WSDL ファイルを右クリックして、 「Web サービス」 > 「Java bean スケルトンを生成」を選択します。
  3. Web サービスのタイプ「スケルトン EJB Web サービス」を選択して、 ウィザードを完了します。
ウィザードを完了した後は、サービス・インターフェースを実装する EJB が作成され、 それは WSIF API に依存したものではないはずです。

このインターフェースは 5.1 のインターフェースと多少の違いがあり、 5.1 コンシューマーと新しいインポートの間にインターフェース・メディエーション・コンポーネントを挿入することが必要な場合があります。 これを行うためには、アセンブリー・エディターでワイヤー・ツールをクリックして、 SCA ソース・コンポーネントを、この新しい Web サービス・バインディング付きインポートにワイヤリングします。 インターフェースが異なるため、 「ソース・ノードとターゲット・ノードにマッチング・インターフェースがありません。」というプロンプトが出されます。 ソース・ノードとターゲット・ノードの間にインターフェース・マッピングを作成することを選択します。 アセンブリー・エディターで作成されたマッピング・コンポーネントをダブルクリックします。 これにより、マッピング・エディターが開きます。 インターフェース・マッピングの作成についての説明は、 インフォメーション・センターを参照してください。

これが完了したら、EJB サービスを再ワイヤリングする必要があります。 参照は存在しないはずであるため、必要なのは Java コンポーネントのインターフェースの再ワイヤリングのみです。
  • このサービスが同じモジュール内のビジネス・プロセスによって呼び出される場合は、 該当するビジネス・プロセス参照からのこの EJB コンポーネントへのワイヤーを作成します。
  • このサービスが別のモジュール内のビジネス・プロセスによって呼び出される場合は、 SCA バインディング付きエクスポートを作成し、 このエクスポートを他のモジュールからそのモジュールのアセンブリー・エディターにドラッグ・アンド・ドロップして、 対応する SCA バインディング付きインポートを作成します。 該当するビジネス・プロセス参照をそのインポートにワイヤリングします。
  • このサービスが、外部での公開のために、WebSphere Studio Application Developer Integration Edition で公開されていた場合は、 サービスの再公開の方法について、 セクション『インバウンド非 BPEL サービス・マイグレーション』を参照してください。

Feedback
(C) Copyright IBM Corporation 2005, 2006. All Rights Reserved.
(C) Copyright IBM Japan 2006