WebSphere JAX-RPC ランタイム環境を使用した エンタープライズ Bean (EJB) からの Web サービスの作成

「Web サービス」ウィザードを使用すると、新規 Web サービスの作成、 そのサービスのデプロイメント用の構成、および Web サービスのサーバーへのデプロイを、簡単に行うことができます。Web サービスのデプロイ後は、Web サービスをテストするためのクライアント・プロキシーとサンプル・アプリケーションの生成を支援します。テストが完了したら、「エクスポート」ウィザードを使用して、Web サービスを UDDI Business Registry に公開できます。

始める前に

前提条件:

作成される Web サービスは、エンタープライズ Bean のクライアントとして 機能します。エンタープライズ Bean は、Web サービス・ウィザードが起動する前に デプロイする必要があります。

このタスクについて

注: この製品では、 エンタープライズ Bean Web サービスをステートレス・セッション・エンタープライズ Bean から作成することができます。

Web サービスのエンタープライズ Bean からの作成

手順

  1. Java™ EE パースペクティブに切り替えます (「ウィンドウ」>「パースペクティブを開く」>「Java EE」)。
  2. 「エンタープライズ・エクスプローラー」ビューで「EJB モジュール」を展開し、Web サービスの生成元となるセッション Bean を選択します。
  3. ファイル」>「新規」>「その他」の順にクリックします。「Web サービス」を選択して、各種の Web サービス・ウィザードを表示します。「Web サービス」ウィザードを選択します。「次へ」をクリックします。
  4. 「Web サービス」ページ:「Web service type」ドロップダウン・ リストから「Bottom up EJB Web service」を選択します。ワークスペースで使用可能なステートレス・セッション・エンタープライズ Bean からサービス実装を選択します。 次の操作を実行するオプションもあります。
    1. スライダーを使用して実行する Web サービス開発のステージを選択します。 これにより、残りのウィザードのパネルでいくつかのデフォルト値が設定されます。
      • 開発: Web サービスの WSDL 定義および実装を作成します。これには、生成されたコード、WSDL ファイル、デプロイメント記述子、および Java ファイル (該当する場合) が入るモジュールの作成などのタスクが含まれます。
      • アセンブル: これにより、Web サービスまたはクライアントをホストするプロジェクトが、ターゲット・アプリケーション・サーバーによって要求されたときに EAR に関連付けられるようになります。ルーター・モジュールはこのステージで作成されます。
      • デプロイ: これにより、サービスのデプロイメント・コードが作成されるようになります。
      • インストール: これにより、Web モジュールと EAR がターゲット・サーバーにインストールされ、構成されます。 WSDL ファイルのエンドポイントに対する変更が必要な場合、このステージで変更が行われます。
      • 始動: これにより、サービスがサーバーにインストールされると、サーバーが始動するようになります。
      • テスト: これにより、汎用サービス・クライアント、Web サービス・エクスプローラー、またはサンプル JSP を使用するなどの、サービスをテストするためのさまざまなオプションが提供されます。HTTP トランスポートを使用する Web サービスのテストには、Web サービス・エクスプローラーのみ使用可能であることに注意してください。
    2. サーバーの選択: デフォルト・サーバーが表示されます。 サービスを別のサーバーにデプロイしたい場合には、リンクをクリックして別のサーバーを指定してください。
    3. ランタイム環境の選択: デフォルトのランタイム環境が表示されます。 サービスを別のランタイム環境にデプロイしたい場合には、リンクをクリックして別のランタイムを指定してください。
    4. サービス・プロジェクトの選択: ワークスペースで選択されたプロジェクトを含むプロジェクトが表示されます。 別のプロジェクトと EAR を選択するためには、プロジェクト・リンクをクリックしてください。 クライアント Web プロジェクトとして選択したプロジェクトが、サービス Web プロジェクトとは異なること、またはクライアントが生成した成果物によってサービスが上書きされるようになっていることを確認します。
    5. クライアントを作成したい場合には、生成したいプロキシーのタイプを選択し、クライアントについて上記のステップを繰り返します。
    6. Web サービスの公開: Web サービス・エクスプローラーを起動して、Web サービスを UDDI レジストリーに公開します。
    7. Web サービスのモニター: TCP/IP モニターを介して Web サービス・トラフィックを送信します。これにより、Web サービスによって生成される SOAP トラフィックを監視し、このトラフィックが WS-I に準拠しているかどうかをテストできます。あるいは、TCP/IP モニターを使用した Web サービスのテストで説明するとおり、TCP/IP モニターを手動でセットアップすることもできます。 HTTP トランスポートを使用する Web サービスのモニターのみ可能であることに注意してください。さらに、TCP/IP モニターを介して Web サービス・トラフィックを経路指定している場合は、Universal Test Client を使用して Web サービスをテストできません。
  5. 「Web Service EJB Configuration」ページ:
    1. 既存のサービス・エンドポイント・インターフェースがある場合は、 それを選択して使用することもできます。あるいは、Web サービス・ウィザードで生成することも あります。
    2. バインディング・タイプおよびルーター・プロジェクトを選択します。 選択したバインディングのタイプごとに、ルーター・プロジェクト名を入力します。
    3. SOAP アクションを設定します。このオプションは、生成された WSDL の「soapAction」フィールドの設定に使用されます。デフォルトでは、soapAction フィールドはデプロイメント情報に基づいて設定されます。 「なし」を指定すると、soapAction フィールドは二重引用符 ("") に設定されます。「Operation」を指定すると、soapAction フィールドにはオペレーション名が設定されます。
    4. WSDL 1.1 標準を使用して MIME 型を排他的にマップすることも選択できます。 MIME 型が WSDL 1.1 標準に合わせてマップできない場合は (例えば、添付ファイルが 配列または Java Bean プロパティーである場合)、このコマンドは失敗します。
  6. 「EJB Web Service Binding Configuration」ページ: 前のページで EJB または JMS バインディングを選択した場合は、バインディングに関する情報を 入力します。
    • JMS 宛先タイプ: 宛先タイプとしてキューまたはトピックを選択します。
    • JMS 宛先: 宛先キューまたはトピックの JNDI 名です。
    • JMS 接続ファクトリー: 接続ファクトリーの JNDI 名。
    • JMS ターゲット・サービス: 要求のディスパッチ先になるポート・コンポーネントの名前です。
    • JMS リスナー入力ポート: メッセージ駆動型 Bean (MDB) に関連付けられるリスナー入力ポートの名前です。
    • JMS 初期コンテキスト・ファクトリー: 使用する初期コンテキスト・ファクトリーの名前です。 これは java.naming.factory.initial プロパティーにマップされます。
    • JMS JNDI プロバイダー URL: これは java.naming.provider.url プロパティーにマップされます。
    • JMS 送達モード: 要求メッセージを永続的にするかどうかを指定します。
    • JMS 存続時間: 要求メッセージのミリ秒単位の存続時間です。 値 0 は存続時間が無限であることを示します。
    • JMS 優先順位: 要求メッセージに関連する JMS 優先順位です。
    • JMS ユーザー ID: 接続ファクトリーへのアクセス権を得るために使用するユーザー ID です。
    • JMS パスワード: 接続ファクトリーへのアクセス権を得るために使用するパスワード。
  7. 「Web Service Java Bean Identity」ページ: このページには、Web サービス URI と、 生成された WSDL ファイルの場所がリストされます。このページには、 次のオプションがあります。
    • 必要に応じて WSDL ポート名を変更します。
    • 必要に応じて、WSDL ファイル名またはパスを変更します。このフィールドに入力したパス情報は、 すべて META-INF/wsdl フォルダー内にフォルダーを作成します。これは、デフォルト・フォルダー内に既にある WSDL または XSD ファイルを上書きしたくない場合に便利です。
    • メソッド・パネルには、Bean のメソッドの要約が表示されます。生成した Web サービスのメソッドの、 組み込みまたは削除を選択できます。
    • Set the void return - このフィールドは、Web サービスからの応答が予想されるかどうかを記述する void の戻り型がある Web サービス・メソッドで使用されます。 Oneway: void 戻りのあるメソッドが片方向です。この引数は JMS トランスポートの場合のデフォルトです。 Twoway: void 戻りのあるメソッドが両方向です。この引数は HTTP トランスポートの場合のデフォルトです。
    • Web サービスのスタイルとエンコード方式を選択します。文書/リテラルのみが WS-I に 準拠しています。
    • セキュリティーを使用可能にするように選択します。セキュリティーを使用可能にすると、Web サービスは WS-I に非準拠となります。
    • パッケージから名前空間へのカスタマイズされたマッピングを定義します。
    • エクストラ・クラスと停止クラスを指定します。エクストラでは、WSDL ファイルに示されているその他のクラスを指定します。 -stopClasses 引数を使用して、 検索を停止させるその他のクラスを定義することができます。
  8. 「Web サービスのパッケージから名前空間へのマッピング」ページ: Web サービス・ウィザードでは、指定された Java Bean から WSDL ファイルが生成されます。デフォルトでは、Java Bean のパッケージ名に基づいた名前空間が作成されます。 このデフォルトの振る舞いをオーバーライドするために、WSDL ファイルに生成される独自の名前空間を指定することができます。直前のページで 「Define custom mapping for package to namespace」を選択した場合は、 このページで「追加」をクリックして、カスタム・マッピングのペアを入力することができます。 あるいは、「インポート」をクリックして、.properties ファイルから カスタム・マッピングのペアをインポートすることもできます。プロパティー・ファイルの内容は、 package=namespace というフォーマットでなければなりません。 プロパティー・ファイル内の一部の特殊文字をエスケープする必要があります。例えば、somePackage=http://someNamespacesomePackage=http¥://someNamespace とする必要があります。そうしないと、コロン (:) は区切り文字として扱われ、その結果、somepackagehttp にマップするよう試行されます。 Java のプロパティー・ファイルのフォーマットに関する詳細は、Java プラットフォーム API 資料: java.util.Properties のロード・メソッドを参照してください。
  9. 「Web サービスのテスト」ページ: Web サービスのテストを選択した場合、 生成した Web サービスに対するテスト機能を選択し、「起動」をクリックする。これにより、Web サービスが、Web サービス・エクスプローラーまたは汎用サービス・クライアントで開きます。テストするオペレーションを選択し、必要な情報を入力して「実行」をクリックします。「状況」ペインに結果が表示されます。 Web サービスのテストを完了したら、ブラウザー・ウィンドウをクローズして、「次へ」をクリックする。
  10. プロキシーの生成を選択すると、「Web Service Proxy」ページが 表示されます。クライアント・プロキシーは、Web サービスへのリモート・プロシージャー・コール・インターフェースを提供します。Java クライアント・プロキシーのフォルダーは、デフォルトでは / EJBWebProjectClient です。 オプションで、生成済みプロキシーのセキュリティーを使用可能にするか、 パッケージから名前空間へのカスタム・マッピングを定義するかを選択できます。
  11. 「Web Service Client Namespace to Package Mappings」ページ: 前ページで 「Define custom mapping for namespace to package」を選択した場合は、 このページで「追加」をクリックして、カスタム・マッピングのペアを入力することができます。 あるいは、「インポート」をクリックして、.properties ファイルから カスタム・マッピングのペアをインポートすることもできます。プロパティー・ファイルの内容は、 namespace=package というフォーマットでなければなりません。 プロパティー・ファイル内の一部の特殊文字をエスケープする必要があります。例えば、http://someNamespace=somePackagehttp¥://someNamespace=somePackage とする必要があります。そうしないと、コロン (:) は区切り文字として扱われ、その結果、http//someNamespace=somePackage にマップするよう試行されます。 Java のプロパティー・ファイルのフォーマットに関する詳細は、Java プラットフォーム API 資料: java.util.Properties のロード・メソッドを参照してください。
  12. 生成済みプロキシーのテストを選択すると、「Web Service Client test」ページが 表示されます。このページを使用して、次のオプションを選択します。
    • テスト機能を選択します。 生成したプロキシーを Universal Test Client または Web サービス・エクスプローラーでテストするか、 またはサンプル Web サービス JSP を生成することができます。 TCP/IP モニターを介して Web サービス・トラフィックを経路指定する場合は、Universal Test Client を使用して Web サービスをテストできないことに注意してください。
    • JSP を使用してプロキシーをテストする方法を選択した場合、JSP を配置するフォルダーを選択し、JSP に組み込むメソッドを選択できます。
  13. Web サービスの公開を選択した場合は、「Web Service Publication」ページを使用して、 公開先の UDDI レジストリーを選択する。「終了」をクリックします。
  14. Web サービスの作成後、選択したオプションによっては、以下が発生する場合があります。
    • 生成したプロキシーを Web サービスのサンプル JSP を使用してテストすることを選択した場合、 Web ブラウザーで URL: http://localhost: port/EJBWebProjectClient/sampleBeanName/WebServiceName/TestClient.jsp を指定すると、プロキシーが起動します。 このサンプル・アプリケーションを使用すると、メソッドを選択し、 そのメソッドに値を入力して「Invoke」をクリックすることにより、Web サービスをテストできます。 メソッドの結果は、結果ペインに表示されます。
    • 生成したプロキシーを Universal Test Client によってテストする方法を 選択した場合、次の URL を指定すると、プロキシーがブラウザー・ウィンドウで 起動されます: http://localhost:9080/UTC/preload?object= BeanPackage BeanServiceProxy。「オブジェクト参照」の下の「参照」ペインで、プロキシー・スタブを展開して Web サービスのメソッドを表示します。テストするメソッドをクリックし、「パラメーター」ペインに値を入力して 「Invoke」をクリックします。下に結果が生成されます。
    • Web サービス・エクスプローラーを使用して Web サービスをテストすることを選択した場合は、エクスプローラーが開きます。テストするオペレーションを選択し、必要な情報を入力して「実行」をクリックします。「状況」ペインに結果が表示されます。
    • Web サービスを公開することを選択した場合は、Web サービス・エクスプローラーが起動し、IBM UDDI テスト・レジストリーに Web サービスを公開するために必要なページが表示されます。「Web サービスの公開 (Publishing the web service)」の指示に従って、 このタスクを完了します。

タスクの結果

EJB について詳しくは、EJB アプリケーション開発の文書を 参照してください。EJB から Web サービスを作成するサンプルについては、 チュートリアル・ギャラリーとサンプル・ギャラリーを参照してください。


フィードバック