この課題を始める前に、『』を完了しておく必要があります。

アプリケーションは、登録簿にある現行の全従業員レコードのリストを表示します。 このレコードは、ソート可能な列を使用して JTable (employeesTable) に、 ラストネーム、ファーストネーム、E メール、従業員 ID が表示されます。 テーブルのレコードを取得するには、サンプル Web サービスのデータ・ソース から戻されたデータ・オブジェクト に、employeesTable をバインド する必要があります。

この課題では、以下の 2 つのステップを完了する必要があります。

  1. 提供された WSDL ファイルを使用して、Web サービス Java プロキシーをプロジェクトに生成する
  2. Web サービスが戻す行データ・オブジェクトに従業員テーブルをバインドする

データ・オブジェクト、データ・ソース、バインダーの概要

作業対象の employeesTable に関するローカルのデータ・オブジェクト を取得するには、ビジュアル・エディターを使用し、 データ・ソース をアプリケーションに追加します。 データ・ソースは、サンプルの Web サービス・プロキシーに接続し、 アプリケーションに使用可能なサービス・メソッドを見つけます。 次に、このデータ・ソースから使用可能になる getLightEmployeeRecord サービスを選択します。 最後に、行データ・オブジェクト (lightEmployeeRecordRows) に戻されたフィールドに、 アプリケーションの employeesTable をバインド します。

Java ビジュアル・エディターに組み込まれたバインダー・クラスを使用して、 これらデータ・ソースおよびデータ・オブジェクトのすべてを素早く作成することができます。 ビジュアル・エディターは、ユーザーがビジュアル・コンポーネントをデータ・ファクトリーにバインドする際に、 ユーザーのプロジェクトに生成される汎用インターフェースおよびクラスのセットを提供します。 バインダー・クラスは、デフォルトで jve.generated という名前のパッケージに生成されます。 ビジュアル・エディターは、 ユーザーがユーザーの必要に合うようにさらにカスタマイズおよび拡張することができる汎用インプリメンテーションとしてのバインダー・クラスを提供します。 このチュートリアルは、さらに基本的で単純なデフォルトのバインダー・クラスの能力と柔軟性を明示します。

重要: この課題を始める前に、是非以下のヘルプ・トピックをお読みになるようお勧めします。 これらのトピックは、Java ビジュアル・エディターが提供するデータ・オブジェクト、データ・ソース、 およびバインダーの背後にある機能およびロジックについて、さらに学習することに役立ちます。

このチュートリアルでは、Web サービス・データ・ソース、数種類のデータ・オブジェクト、 数種類のバインダーをユーザーのアプリケーションで使用します。 このアプリケーションにこれらのオブジェクトのインスタンスを追加すると、 ビジュアル・エディターが必要なクラスをプロジェクト内の jve.generated パッケージに追加します。 このプロジェクトで、データ・バインダーのロジックの拡張、交換、または書き換えができます。 Java ビジュアル・エディターは、 このアプリケーションが使用しているデータ・オブジェクト、データ・ソース、 バインダーをデザイン・ビューのフリー・フォーム域に表示して、 バインディング・オブジェクトの視覚的なサポートを提供します。 ビジュアル・エディターは、複数のビジュアル・コンポーネント、データ・オブジェクト、およびデータ・ソースの間に線を引いて、 任意の選択したオブジェクトの現行バインディングを表示します。

次の図は、ビジュアル・コンポーネント、バインダー、データ・オブジェクト、 およびデータ・ソースがどのように相互作用するかを単純化した概要として示しています。 このチュートリアルでビルドするアプリケーションは、バインダーのやや複雑で、かつ創造的な用法を説明しています。 この図は、ユーザーがビルドしているサンプル・アプリケーション内のバインダー、データ・オブジェクト、 およびデータ・ソースを正確に示しているわけではありません。

図 1: この図は、ビジュアル・コンポーネント、バインダー、データ・オブジェクト、 およびデータ・ソースのサンプルとしての関係を示しています。
この図は、ビジュアル・コンポーネント、バインダー、データ・オブジェクト、およびデータ・ソースの間の関係を図示しています。

図 1 では、各ビジュアル・コンポーネントは、バインダーそのものをデータ・オブジェクトと関連付けるか、ボタンの場合では、データ・ソースと関連付ける独自のバインダーを持っています。 テキスト・フィールドのバインダーは、フィールドを、データ・オブジェクトの特定のプロパティーにバインドします。 この図内の行データ・オブジェクトとデータ・オブジェクトは、両方とも、 それらのデータを、データ・ソース上のサービスへの直接呼び出しから取得します。 テキスト・フィールドのデータ・オブジェクトは、 テーブルで Service2 を呼び出すための引き数として選択した行のキー値を使用します。 これにより、テーブル内で選択した行について、 おそらくさらに多くの情報を含むフル・レコードが戻されます。 次に、このフル・レコードは、Service3 を呼び出す際に、ボタンのアクション・バインダーに対して引き数として使用されます。 これはフィールドに入力した値を更新するメソッドとすることもできます。 データ・オブジェクト、データ・バインダー、およびデータ・ソースの詳細な説明は、前述のリンクからアクセスできます。

提供された WSDL ファイルを使用して、Web サービス Java プロキシーをプロジェクトに生成する

サーバー上で実行中の Web サービスを対象に作業をするには、Web サービスと対話するために、Java アプリケーションに Java プロキシー、またはクライアントが必要です。 WSDL ファイルを使用すると、「Web サービス・クライアント」ウィザードを使用して、 Java プロキシーをこの Java プロジェクトに生成することができます。 MyDirectory プロジェクトには、このプロキシーを生成するために使用する EmployeeDirectory.wsdl ファイルが組み込まれています。 Java プロキシーを生成したならば、Web サービスを表すデータ・ソースを作成し、 ビジュアル・コンポーネントのバインディングを開始することができます。

重要: この課題で使用する WSDL ファイルは、 ローカルにインストールした WebSphere Application Server 上に Web サービスがデプロイされており、 ローカル・ホスト (http://localhost:9080) のデフォルト・ポートを使用していることを前提としています。 これとは違う方法で EAR ファイルをデプロイする場合は、 課題を進める前に、それに従って WSDL ファイルを編集してください。

Web サービス Java プロキシーをプロジェクトで生成するには、次のようにします。

  1. メインメニューで、「ファイル」>「新規」>「その他」の順にクリックし、 「Web サービス」>「Web サービス・クライアント」ウィザードの順に選択する。 Web サービスのカテゴリーが表示されていない場合は、「すべてのウィザードを表示」を選択します。
  2. クライアント・プロキシー・タイプ」フィールドの「Web サービス・クライアント」ウィザードで、 「Java プロキシー」を選択し、「次へ」をクリックする。
  3. 「Web サービスの選択」ページで、「ブラウズ」をクリックして WSDL ファイルを見つける。
  4. リソース・ブラウザーで MyDirectory プロジェクトを展開し、「EmployeeDirectory.wsdl」を選択する。 「OK」をクリックし、次に「Web サービス・クライアント」ウィザードで、 「次へ」をクリックする。

    「Web サービス・クライアント」ウィザード

  5. このウィザードの「クライアント環境構成」ページで、 「編集」をクリックしてクライアント・サイドの構成を変更して、 正しいランタイム JAR ファイルまたはパスが Java プロジェクトに追加されていることを確認する。 以下の値を選択し、「OK」をクリックする。
  6. ウィザードの「クライアント環境構成」ページの 「クライアント型」 フィールドで、「Java」を選択する。
  7. クライアント・プロジェクト」フィールドで、「MyDirectory」を選択する。 これが、「Web サービス・クライアント」ウィザードにより、Web サービスの Java プロキシーが出力される Java プロジェクトです。

    「Web サービス・クライアント」ウィザード

  8. 次へ」をクリックする。
  9. 完了」をクリックする。 「Web サービス・クライアント」ウィザードは Java プロキシーを生成し、それをプロジェクト内の新規パッケージ (directory.service) に追加します。

Web サービスが戻す行データ・オブジェクトに employeesTable をバインドする

デモを見る

employeesTable は、このアプリケーションでバインディングする最初のビジュアル・コンポーネントであるため、 ユーザーがプロジェクトに追加したばかりのサンプル Web サービス・プロキシーを指すデータ・ソースを作成する必要があります。 これより後の課題で、その他のビジュアル・コンポーネントをバインドする場合は、このデータ・ソースを再利用します。 このステップでは、Web サービス・データ・ソースと lightEmployeeRecordRows データ・オブジェクトを追加します。

従業員テーブルをバインドするには、以下のようにします。

  1. Java Bean ビューまたはデザイン・ビューで、employeesTable を選択する。 (その JScrollPane の親を選択していないことを確認します。) デザイン域の employeesTable の上部に、 「バインド」とラベル付けされた小さなタブが表示されます。

    グラフィカル・キャンバスの JTable 上の「バインド」タブ

  2. employeesTable の上にある「バインド」タブをクリックする。 代わりに、employeesTable を右クリックして、「プロパティーのバインディング」を選択することもできます。
  3. アプリケーションには、まだデータ・オブジェクトがないので、新しいデータ・オブジェクトを追加する必要がある。 「新規データ・ソース・データ・オブジェクト」をクリックします。
  4. ソース・タイプ」フィールドで、「Web サービス」を選択する。
  5. アプリケーションに Web サービス・データ・ソースをまだ追加していないので、 ここで追加する必要がある。 「データ・ソース」フィールドの隣にある 「...」ボタンをクリックして、「Web サービス・データ・ソースの追加」ダイアログ・ボックスを開きます。 これはプロジェクトにある使用可能な Web サービス・クライアント、またはプロキシーを探します。
  6. EmployeeDirectory Web サービスを選択して、「完了」をクリックする。 新規のデータ・ソースが DirectoryApp.java ファイルに追加されます。

    「Web サービス・データ・ソースの追加」ダイアログ・ボックス

  7. 「新規データ・ソース・データ・オブジェクト」ダイアログ・ボックスで、 「ソース・サービス」フィールド内で getLightEmployeeRecords() を選択し、 新規データ・オブジェクトのデフォルト名 (lightEmployeeRecordRows) を受け入れる。 このサービス・メソッドにパラメーターは必要ありません。 「OK」をクリックする。 新しいデータ・オブジェクトが作成され、デザイン・ビューのフリー・フォーム域に表示されます。

    「新規データ・ソース・データ・オブジェクト」ダイアログ・ボックス

    ヒント: テーブルをバインディングしているので、 「新規データ・ソース・データ・オブジェクト」ダイアログ・ボックスには、 行データ・オブジェクトを戻すサービスだけが表示されます。 この場合、getLightEmployeeRecords() メソッドは、オブジェクトの配列を戻す唯一の使用可能なサービスです。

  8. 「テーブル・データのバインディング」ダイアログ・ボックスで、lightEmployeeRecordRows データ・オブジェクトを選択する。
  9. ここで、employeesTable に表示したい lightEmployeeRecordRows データ・オブジェクトのプロパティーを選択する必要があります。

    「テーブル・データのバインディング」ダイアログ・ボックス

    1. ボタンをクリックして、 すべてのオブジェクト・プロパティーを 「テーブル列」リストに追加する。
    2. 上矢印と下矢印を使用して、上から下に次の順序で列を整理する: ラストネーム、ファーストネーム、E メール、従業員 ID
    3. 列のタイトルを次のように名前変更する: ラストネームファーストネームE メール従業員 ID

      ヒント: テーブルのバインディングが終了したならば、いつでもバインディング・プロパティーに戻って、列を名前変更したり、 再配列したりできます。

    4. OK」をクリックする。

    これで、JRowTableBinder を使用して、employeesTable が lightEmployeeRecordRows データ・オブジェクトにバインドされました。 フリー・フォーム域の lightEmployeeRecordRows データ・オブジェクトをクリックすると、 ビジュアル・エディターは、データ・オブジェクトからテーブルまで線を引きます。 この線上に、JRowTableBinder がテーブル・バインダー テーブル・バインダー・アイコン のアイコンによって示されます。 もう 1 本の線は、データ・オブジェクトが webServiceDataSource をそのデータ・ソースとして使用していることを示します。

    JTable のバインダー線のビュー

プロジェクトおよびアプリケーションに加えた変更を調べます。 この課題では、Web サービス・データ・ソースと行データ・オブジェクトを追加し、 行データ・オブジェクトに employeesTable をバインドするためのバインダーを追加しました。 Java ビジュアル・エディターによって生成されたバインダー・クラスのすべてを保持するために、 ユーザーのプロジェクトに作成された新規パッケージ (jve.generated) を注意して調べてください。 また Web サービス用の Java プロキシーを保持する新規パッケージ (directory.service) にも注目してください。

MyDirectory プロジェクト内のパッケージ

これで、 アプリケーションを実行すると、 Web サービスによって、既存の従業員レコードが従業員テーブルに取り込まれます。

これで次の課題の『』に進む準備が完了しました。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.