この課題を始める前に、「」を完了してください。

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

この課題では、次の 2 つを完了する必要があります。

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

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

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

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

重要: この課題を始める前に、 Java ビジュアル・エディター・セクションのヘルプ目次にある次のヘルプ・トピックを読んでおくことをお勧めします。 これらのトピックは、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」を選択する。 「Web サービス・クライアント」ウィザードで、 「OK」をクリックし、「次へ」をクリックする。

    「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 の上部に、 「バインド」とラベル付けされた小さなタブがあります。

  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, 2004. All Rights Reserved.