IBM WebSphere JAX-RPC ランタイム環境を 使用した Java Bean からの Web サービスの作成

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

始める前に

前提条件:

このタスクについて

IBM® WebSphere JAX-RPC ランタイム環境を使用して Bean から Web サービスを作成する手順は、次のとおりです。

手順

  1. Java EE パースペクティブに切り替えます (「ウィンドウ」>「パースペクティブを開く」>「Java EE」)。
  2. エンタープライズ・エクスプローラー・ビュー で、Web プロジェクトのソース・フォ ルダーに作成したか、またはインポートした Bean を選択します。
  3. ファイル」>「新規」>「その他」の順にクリックします。「Web サービス」を選択して、各種の Web サービス・ウィザードを表示します。「Web サービス」ウィザードを選択します。「次へ」をクリックします。
  4. 「Web サービス」ページ: Web サービス・タイプとして「Bottom up Java bean Web service」を 選択します。 次の操作を実行するオプションもあります。
    1. スライダーを使用して実行する Web サービス開発のステージを選択します。 これにより、残りのウィザードのパネルでいくつかのデフォルト値が設定されます。
      • 開発: Web サービスの WSDL 定義および実装を開発します。 これには、生成されたコード、WSDL ファイル、デプロイメント記述子、および Java ファイル (該当する場合) が入るモジュールの作成などのタスクが含まれます。
      • アセンブル: これにより、Web サービスまたはクライアントをホストするプロジェクトが、ターゲット・アプリケーション・サーバーによって要求されたときに EAR に関連付けられるようになります。
      • デプロイ: これにより、サービスのデプロイメント・コードが作成されるようになります。
      • インストール: これにより、Web モジュールと EAR がターゲット・サーバーにインストールされ、構成されます。 WSDL ファイルのエンドポイントに対する変更が必要な場合、このステージで変更が行われます。
      • 始動: これにより、サービスがサーバーにインストールされると、サーバーが始動するようになります。
      • テスト: これにより、汎用サービス・クライアント、Web サービス・エクスプローラー、またはサンプル JSP を使用するなどの、サービスをテストするためのさまざまなオプションが提供されます。
    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 モニターを手動でセットアップすることもできます。 TCP/IP モニターを介して Web サービス・トラフィックを経路指定する場合は、Universal Test Client を使用して Web サービスをテストできないことに注意してください。
  5. 「Service Endpoint Interface Selection」ページ:
    • サービス・エンドポイント・インターフェース (SEI) をウィザードに生成させるのではなく、既存の SEI を使用することができます。
    • サービス・デプロイの有効範囲を設定します。これは、サーバーのインプリメンテーションをデプロイする方法を示しています。 アプリケーションは、すべての要求について実装クラスの 1 つのインスタンスを使用します。 要求は、各要求ごとに新しい実装クラス・インスタンスを 1 つ作成します。 セッションは、各セッションごとに新しい実装クラス・インスタンスを 1 つ作成します。
    • SOAP アクションを設定します。このオプションは、生成された WSDL の「soapAction」フィールドの設定に使用されます。デフォルトでは、soapAction フィールドはデプロイメント情報に基づいて設定されます。 「なし」を指定すると、soapAction フィールドは二重引用符 ("") に設定されます。「Operation」を指定すると、soapAction フィールドにはオペレーション名が設定されます。
    • WSDL 1.1 標準を使用して MIME 型を排他的にマップすることも選択できます。 MIME 型が WSDL 1.1 標準に合わせてマップできない場合は (例えば、添付ファイルが 配列または Java Bean プロパティーである場合)、このコマンドは失敗します。
  6. Web サービス Java Bean の識別ページ:
    • 必要に応じて WSDL ポート名を変更します。
    • 必要に応じて、WSDL ファイル名またはパスを変更します。このフィールドに入力したパス情報は、 すべて WEB-INF/wsdl フォルダー内にフォルダーを作成します。これは、デフォルト・フォルダー内に既にある WSDL または XSD ファイルを上書きしたくない場合に便利です。
    • 公開するメソッドを選択します。
    • Set the void return - このフィールドは、Web サービスからの応答が予想されるかどうかを記述する void の戻り型がある Web サービス・メソッドで使用されます。 Oneway: この引数は、JMS トランスポートの場合のデフォルトです。 Twoway: この引数は HTTP トランスポートの場合のデフォルトです。
    • エンコード・スタイルを選択します。これにより、WSDL ファイルに生成されるスタイルおよび使用の組み合わせが指定されます。 この組み合わせは、エンコードされた RPC、RPC リテラル、または文書リテラルです。 文書/リテラルのみが WS-I に準拠しています。
    • セキュリティー・オプションを選択します。セキュリティーは WS-I に準拠していません。
    • パッケージから名前空間へのマッピングをカスタマイズするかどうかを選択します。
    • エクストラ・クラスと停止クラスを指定します。エクストラでは、WSDL ファイルに示されているその他のクラスを指定します。 -stopClasses 引数を使用して、 検索を停止させるその他のクラスを定義することができます。
  7. 「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 のロード・メソッドを参照してください。
  8. 「Extra and Stop Classes Configuration」ページ:「Specify extra and stop classes」を 選択すると、このページにエクストラ・クラスと停止クラスをインポートできます。 エクストラでは、WSDL ファイルに示されているその他のクラスを指定します。 -stopClasses 引数を使用して、 検索を停止させるその他のクラスを定義することができます。
  9. 「Web サービスのテスト」ページ: Web サービスのテストを選択した場合、 生成した Web サービスに対するテスト機能を選択します。これにより、Web サービスが、Web サービス・エクスプローラーまたは汎用サービス・クライアントで開きます。テストするオペレーションを選択し、必要な情報を入力して「実行」をクリックします。「状況」ペインに結果が表示されます。 「次へ」をクリックします。
  10. 「Web Service Proxy」ページ: プロキシーの生成を選択した場合は、 プロキシー・セキュリティー・オプションを選択し、パッケージから名前空間へのマッピングを カスタマイズするかどうかを選択します。
  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 サービス・クライアント・テスト・ページ:
    • テスト機能を選択します。生成したプロキシーを Universal Test Client または Web サービス・エクスプローラーでテストするか、 またはサンプル Web サービス JSP を生成することができます。 TCP/IP モニターを介して Web サービス・トラフィックを経路指定する場合は、Universal Test Client を使用して Web サービスをテストできないことに注意してください。
    • JSP を使用してプロキシーをテストする方法を選択した場合、JSP を配置するフォルダーを選択し、JSP に組み込むメソッドを選択できます。
    • サーバーでテストを実行」を選択して、サーバーが自動的に開始されるようにします。
  13. 「Web サービスの公開」ページ: この Web サービスを UDDI レジストリーに公開するかどうかを選択します。 「終了」をクリックします。

タスクの結果

Web サービスの作成後、選択したオプションによっては、以下が発生する場合があります。

JAX-RPC Web サービスを Java Bean から作成する際の便利なヒントについては、developerWorks® で入手可能な次の記事を参照してください。IBM Rational® Application Developer Web Services Tooling Tips and Tricks: Part 2: Validate Java classes for compliance to JAX-RPC

フィードバック