注: この方法を使用してマイグレーションを試みる前に、サイト 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 サービスを作成するには、以下のステップに従ってください。
- サービスを作成している EJB のコンテナーであるエンタープライズ・アプリケーション・プロジェクトを右クリックします。
- 「プロパティー」を選択し、
「サーバー」プロパティーで、
「ターゲット・ランタイム (Target runtime)」が、「WebSphere Process Server v6.0」に設定され、
「デフォルト・サーバー」が、インストール済みの「WebSphere Process Server v6.0」に設定されていることを確認します。
- テスト・サーバーを開始し、そのサーバーにこのアプリケーションをデプロイして、
正常に開始されるようにします。
- J2EE パースペクティブで、「プロジェクト・エクスプローラー」ビューの「EJB プロジェクト」を展開します。
「デプロイメント記述子 (Deployment Descriptor)」を展開し、
次に「セッション Bean」カテゴリーを展開します。
Web サービスを生成する Bean を生成します。
- 右クリックして、を選択します。
- Start Web service in Web project「Web サービス・タイプ (Web Service Type)」について、
「EJB Web サービス」を選択し、
Web サービスを今すぐにデプロイしたい場合を除き、
「Web プロジェクトの Web サービスを開始 (Start Web service in Web project)」オプションのチェック・マークを外します。
「次へ」をクリックします。
- 右クリックした EJB がここで選択されていることを確認して、
「次へ」をクリックします。
- ここで、サービス・デプロイメント・オプションを構成する必要があります。
「編集...」ボタンをクリックします。
サーバー・タイプには、
「WPS Server v6.0」を選択し、
Web サービス・ランタイムには、「IBM WebSphere」 および「J2EE バージョン 1.4 (J2EE version 1.4)」を選択します。
これを行うことで有効な組み合わせを選択できない場合は、
v1.4 レベルへの J2EE プロジェクトのマイグレーションについて、
セクション『マイグレーションの準備』を参照してください。
「OK」をクリックします。
- サービス・プロジェクトについて、EJB が含まれている EJB プロジェクトの名前を入力します。
また、該当する EAR プロジェクトも選択します。
「次へ」をクリックします。
このとき、数分間待たなければならない場合があります。
- 「Web サービス EJB の構成」パネルで、使用する該当ルーター・プロジェクトを選択します
(作成したいルーター Web プロジェクトの名前を選択すると、
このプロジェクトは、オリジナルの EJB と同じエンタープライズ・アプリケーションに追加されます)。
希望するトランスポート (「HTTP 上の SOAP」または 「JMS 上の SOAP」) を選択します。
「次へ」をクリックします。
- 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
を参照してください。
- 「次へ」をクリックし、
「Web サービスのパッケージから名前空間へのマッピング」パネルで、
「追加」ボタンをクリックし、
作成される行に EJB のパッケージ名を入力してから、
この EJB を一意的に識別するカスタム名前空間を入力します。
EJB インターフェースで使用するすべての Java パッケージに対して、マッピングの追加を続行します。
- 「次へ」をクリックします。
このとき、数分間待たなければならない場合があります。
- 「終了」をクリックします。
サービス・プロジェクトが EJB サービスのコンシューマーであった場合には、
ウィザードが完了した後、
EJB サービスを記述する生成済み WSDL ファイルをビジネス・インテグレーション・モジュール・プロジェクトにコピーする必要があります。
このプロジェクトは、
フォルダー WebContent/WEB-INF/wsdl の下の生成済みルーター Web プロジェクトの中にあります。
ビジネス・インテグレーション・モジュール・プロジェクトの更新/再ビルドを行ってください。
- ビジネス・インテグレーション・パースペクティブに切り替え、
マイグレーションされたモジュールを展開し、
次に「Web サービス・ポート」論理カテゴリーを展開します。
- 前のステップで生成されたポートを選択し、
そのポートをアセンブリー・エディターにドラッグ・アンド・ドロップして、
Web サービス・バインディング付きインポートの作成を選択します。
プロンプトが出されたら、EJB の WSDL インターフェースを選択します。
これで、5.1 で EJB を利用する SCA コンポーネントをこのインポートにワイヤリングして、
手動による再ワイヤリングのマイグレーション・ステップを完了することができます。
WebSphere Studio Application Developer Integration Edition でトップダウンのアプローチを使用していた場合は、
WSDL 定義から EJB スケルトンを生成した後、以下のステップを実行してください。
- 新しい Web プロジェクトを作成し、EJB スケルトンの生成元にしたい WSDL ファイルを、
この Web プロジェクトのソース・フォルダーにコピーします。
- EJB スケルトンの生成元にしたいポート・タイプが含まれている WSDL ファイルを右クリックして、
を選択します。
- Web サービスのタイプ「スケルトン EJB Web サービス」を選択して、
ウィザードを完了します。
ウィザードを完了した後は、サービス・インターフェースを実装する EJB が作成され、
それは WSIF API に依存したものではないはずです。
このインターフェースは 5.1 のインターフェースと多少の違いがあり、
5.1 コンシューマーと新しいインポートの間にインターフェース・メディエーション・コンポーネントを挿入することが必要な場合があります。
これを行うためには、アセンブリー・エディターでワイヤー・ツールをクリックして、
SCA ソース・コンポーネントを、この新しい Web サービス・バインディング付きインポートにワイヤリングします。
インターフェースが異なるため、
「ソース・ノードとターゲット・ノードにマッチング・インターフェースがありません。」というプロンプトが出されます。
ソース・ノードとターゲット・ノードの間にインターフェース・マッピングを作成することを選択します。
アセンブリー・エディターで作成されたマッピング・コンポーネントをダブルクリックします。
これにより、マッピング・エディターが開きます。
インターフェース・マッピングの作成についての説明は、
インフォメーション・センターを参照してください。
これが完了したら、EJB サービスを再ワイヤリングする必要があります。
参照は存在しないはずであるため、必要なのは Java コンポーネントのインターフェースの再ワイヤリングのみです。
- このサービスが同じモジュール内のビジネス・プロセスによって呼び出される場合は、
該当するビジネス・プロセス参照からのこの EJB コンポーネントへのワイヤーを作成します。
- このサービスが別のモジュール内のビジネス・プロセスによって呼び出される場合は、
SCA バインディング付きエクスポートを作成し、
このエクスポートを他のモジュールからそのモジュールのアセンブリー・エディターにドラッグ・アンド・ドロップして、
対応する SCA バインディング付きインポートを作成します。
該当するビジネス・プロセス参照をそのインポートにワイヤリングします。
- このサービスが、外部での公開のために、WebSphere Studio Application Developer Integration Edition で公開されていた場合は、
サービスの再公開の方法について、
セクション『インバウンド非 BPEL サービス・マイグレーション』を参照してください。