Bevor Sie mit dieser Übung anfangen, müssen Sie ausführen.

In der Anwendung wird eine Liste aller im Verzeichnis vorhandenen Mitarbeitereinträge angezeigt. Die Einträge werden in einer JTable (employeesTable) mit sortierbaren Spalten angezeigt, die Angaben zum Nachnamen, Vornamen, der E-Mail-Adresse und der Mitarbeiter-ID enthalten. Zum Abrufen der Tabelleneinträge müssen Sie die Mitarbeitertabelle an ein Datenobjekt binden, das von der Datenquelle des Muster-Web-Services zurückgegeben wird.

In dieser Übung müssen Sie die folgenden beiden Schritte ausführen:

  1. Mit Hilfe der bereitgestellten WSDL-Datei einen Web-Service-Java-Proxy im Projekt generieren
  2. Mitarbeitertabelle an ein vom Web-Service zurückgegebenes Zeilendatenobjekt binden

Übersicht über Datenobjekte, Datenquellen und Binder

Zum Abrufen eines lokalen Datenobjekts, mit dem die employeesTable arbeiten kann, verwenden Sie den Visual Editor, um Ihrer Anwendung eine Datenquelle hinzuzufügen. Die Datenquelle stellt eine Verbindung zum Muster-Web-Service-Proxy her und erkennt die für die Anwendung verfügbaren Servicemethoden. Danach schließen Sie die Servicemethode getLightEmployeeRecord, die von der Datenquelle verfügbar gemacht wird. Abschließend binden Sie die employeesTable in Ihrer Anwendung an die Felder, die im Zeilendatenobjekt (lightEmployeeRecordRows) zurückgegeben werden.

Alle diese Datenquellen und Datenobjekte können Sie rasch und einfach mit Hilfe der im Java Visual Editor integrierten Binderklassen erstellen. Der Visual Editor bietet eine Reihe generischer Schnittstellen und Klassen, die in Ihr Projekt generiert werden, wenn Sie visuelle Komponenten an Daten-Factorys binden. Die Binderklassen werden standardmäßig in ein Paket mit dem Namen jve.generated generiert. Der Visual Editor stellt die Binderklassen als generische Implementierung bereit, die Sie entsprechend den Anforderungen Ihrer Anwendung weiter anpassen und erweitern können. In diesem Lerntext wird die hohe Leistung und Flexibilität der standardmäßigen Binderklassen bereits bei einfacher Nutzung veranschaulicht.

Wichtig: Es wird dringend empfohlen, dass Sie vor Beginn dieser Übung die folgenden Hilfethemen lesen. Diese Themen helfen Ihnen, die Funktionalität und Logik der Datenobjekte, Datenquellen und Binder des Java Visual Editors besser zu verstehen:

In diesem Lerntext verwenden Sie eine Web-Service-Datenquelle, mehrere unterschiedliche Datenobjekte und mehrere unterschiedliche Binder in Ihrer Anwendung. Wenn Sie Instanzen dieser Objekte zu dieser Anwendung hinzufügen, fügt der Visual Editor die erforderlichen Klassen in ein Paket mit der Bezeichnung jve.generated in Ihrem Projekt ein, wo Sie die die Datenbindungslogik erweitern, ersetzen oder neu programmieren können. Der Java Visual Editor bietet visuelle Unterstützung für die Bindungsobjekte, indem im unformatierten Bereich der Sicht "Entwurf" die Datenobjekte, Datenquellen und Binder angezeigt werden, die Ihre Anwendung verwendet. Der Visual Editor zieht zwischen visuellen Komponenten und den Datenobjekten und Datenquellen Linien, um die aktuellen Bindungen für ein beliebig ausgewähltes Objekt anzuzeigen.

Das folgende Diagramm bietet einen einfachen Überblick über die Interaktionen zwischen visuellen Komponenten, Bindern, Datenobjekten und Datenquellen. Die Anwendung, die Sie im Rahmen dieses Lerntexts erstellen, demonstriert eine etwas komplexere und kreativere Verwendung der Binder. In diesem Diagramm werden nicht exakt die Binder, Datenobjekte und Datenquellen in der Musteranwendung dargestellt, die Sie erstellen.

Abbildung 1. In diesem Diagramm ist eine einfache Beziehung zwischen visuellen Komponenten, Bindern, Datenobjekten und Datenquellen dargestellt.
Dieses Diagramm illustriert die Beziehung zwischen visuellen Komponenten, Bindern, Datenobjekten und Datenquellen.

In Abbildung 1 verfügt jede visuelle Komponente über einen eigenen Binder, der sie einem Datenobjekt oder, im Fall der Schaltfläche, einer Datenquelle zuordnet. Die Binder für die Textfelder binden das Feld an ein bestimmtes Merkmal des Datenobjekts. Sowohl das Zeilendatenobjekt als auch das Datenobjekt in diesem Diagramm rufen ihre Daten über Direktaufrufe eines Service der Datenquelle ab. Das Datenobjekt für die Textfelder verwendet einen Schlüsselwert aus der ausgewählten Zeile in der Tabelle als Argument für den Aufruf von Service2, der einen vollständigen Datensatz mit voraussichtlich weiteren Informationen über die ausgewählte Zeile in der Tabelle zurückgibt. Dieser vollständige Datensatz wird seinerseits als Argument für den Aktionsbinder der Schaltfläche verwendet, wenn Service3 aufgerufen wird. Bei diesem Service kann es sich um eine Methode handeln, die die in den Feldern eingegebenen Werte aktualisiert. Detailliertere Erläuterungen der Datenobjekte, Datenbinder und Datenquellen enthalten die weiter oben angegebenen Links.

Mit Hilfe der bereitgestellten WSDL-Datei einen Web-Service-Java-Proxy im Projekt generieren

Ihre Java-Anwendung benötigt für die Interaktion mit dem auf einem Server ausgeführten Web-Service einen Java-Proxy oder einen Client. Bei Verwendung einer WSDL-Datei können Sie mit Hilfe des Assistenten für Web-Service-Clients einen Java-Proxy in Ihr Java-Projekt generieren. Das Projekt MyDirectory enthält die Datei EmployeeDirectory.wsdl, die Sie zum Generieren dieses Proxys verwenden. Nach dem Generieren des Java-Proxys können Sie eine Datenquelle erstellen, die den Web-Service darstellt, und mit dem Binden visueller Komponenten beginnen.

Wichtig: In der WSDL-Datei, die in dieser Übung verwendet wird, wird davon ausgegangen, dass Sie den Web-Service auf einer lokalen Installation von WebSphere Application Server implementiert und den Standardport für localhost (http://localhost:9080) verwendet haben. Wenn Sie die EAR-Datei anders implementiert haben, müssen Sie die WSDL-Datei entsprechend bearbeiten, bevor Sie fortfahren.

Führen Sie folgende Schritte aus, um den Web-Service-Java-Proxy in Ihrem Projekt zu generieren:

  1. Klicken Sie im Hauptmenü auf Datei > Neu > Andere, und wählen Sie den Assistenten Web-Services > Web-Service-Client aus. Wenn die Kategorie "Web-Services" nicht angezeigt wird, wählen Sie Alle Assistenten anzeigen aus.
  2. Wählen Sie im Assistenten für Web-Service-Clients im Feld Client-Proxytyp die Option Java-Proxy aus, und klicken Sie danach auf Weiter.
  3. Klicken Sie auf der Seite für Web-Service-Auswahl auf Durchsuchen, um nach der WSDL-Datei zu suchen.
  4. Erweitern Sie im Ressourcenbrowser das Projekt MyDirectory, und wählen Sie EmployeeDirectory.wsdl aus. Klicken Sie auf OK und anschließend im Assistenten für Web-Service-Clients auf Weiter.

    Assistent für Web-Service-Clients

  5. Klicken Sie auf der Seite "Konfiguration der Clientumgebung" des Assistenten auf Bearbeiten, um die clientseitige Konfiguration zu ändern und sicherzustellen, dass die richtigen Laufzeit-JAR-Dateien oder -Pfade zum Java-Projekt hinzugefügt werden. Wählen Sie die folgenden Werte aus, und klicken Sie anschließend auf OK:
  6. Wählen Sie auf der Seite "Konfiguration der Clientumgebung" des Assistenten im Feld Client-Typ die Option Java aus.
  7. Wählen Sie im Feld Clientprojekt die Option MyDirectory aus. Das ist Ihr Java-Projekt, in das der Assistent für Web-Service-Clients den Java-Proxy für den Web-Service ausgibt.

    Assistent für Web-Service-Clients

  8. Klicken Sie auf Weiter.
  9. Klicken Sie auf Fertig stellen. Der Assistent für Web-Service-Clients generiert den Java-Proxy und fügt ihn einem neuen Paket (directory.service) in Ihrem Projekt hinzu.

Mitarbeitertabelle (employeesTable) an ein vom Web-Service zurückgegebenes Zeilendatenobjekt binden

Zeigen

Da die employeesTable die erste visuelle Komponente ist, die Sie in dieser Anwendung binden, müssen Sie eine Datenquelle erstellen, die auf den soeben dem Projekt hinzugefügten Muster-Web-Service-Proxy zeigt. Beim Binden anderer visueller Komponenten in späteren Übungen können Sie diese Datenquelle wiederverwenden. In diesem Schritt fügen Sie die Web-Service-Datenquelle und das Datenobjekt lightEmployeeRecordRows hinzu.

Führen Sie folgende Schritte aus, um die Mitarbeitertabelle zu binden:

  1. Wählen Sie in der Sicht "JavaBeans" oder "Entwurf" die Mitarbeitertabelle aus. (Achten Sie darauf, dass Sie nicht das übergeordnete JScrollPane auswählen.) Oben in der Mitarbeitertabelle in der Sicht "Entwurf" wird eine kleine Registerkarte Binden angezeigt.

    Registerkarte 'Binden' auf JTable im grafischen Erstellungsbereich

  2. Klicken Sie in der Mitarbeitertabelle auf die Registerkarte Binden. Als Alternative können Sie auch mit der rechten Maustaste auf die employeesTable klicken und Binding-Eigenschaften auswählen.
  3. Da sich in Ihrer Anwendung noch keine Datenobjekte befinden, müssen Sie ein neues Datenobjekt hinzufügen. Klicken Sie auf Neues Datenquellendatenobjekt.
  4. Wählen Sie im Feld Quellentyp die Option Web-Service aus.
  5. Da Sie die Web-Service-Datenquelle noch nicht zu Ihrer Anwendung hinzugefügt haben, müssen Sie dies nun tun. Klicken Sie neben dem Feld Datenquelle auf die Schaltfläche ..., um das Dialogfenster Web-Service-Datenquelle hinzufügen zu öffnen, das nach verfügbaren Web-Service-Clients oder Proxys in Ihrem Projekt sucht.
  6. Wählen Sie den Web-Service EmployeeDirectory aus, und klicken Sie auf Fertig stellen. Daraufhin wird der Datei DirectoryApp.java eine neue Datenquelle hinzugefügt.

    Dialogfenster 'Web-Service-Datenquelle hinzufügen'

  7. Wählen Sie im Dialogfenster Neues Datenquellendatenobjekt im Feld Quellenservice die Option getLightEmployeeRecords() aus, und akzeptieren Sie den Standardnamen für das neue Datenobjekt: lightEmployeeRecordRows. Für diese Servicemethode sind keine Parameter erforderlich. Klicken Sie auf OK. Das neue Datenobjekt wird erstellt und im unformatierten Bereich der Sicht "Entwurf" angezeigt.

    Dialogfenster 'Neues Datenquellendatenobjekt'

    Tipp: Da Sie eine Tabelle binden, werden im Dialogfenster "Neues Datenquellendatenobjekt" nur Services angezeigt, die Zeilendatenobjekte zurückgeben. Im vorliegenden Fall ist die Methode getLightEmployeeRecords() der einzige verfügbare Service, der eine Feldgruppe von Objekten zurückgibt.

  8. Wählen Sie im Dialogfenster Tabellen-Daten-Bindings das Datenobjekt lightEmployeeRecordRows aus.
  9. Nun müssen Sie die Eigenschaften des Datenobjekts lightEmployeeRecordRows auswählen, die in employeesTable angezeigt werden sollen:

    Dialogfenster 'Tabellen-Daten-Bindings'

    1. Klicken Sie auf die Schaltfläche , um alle Objekteigenschaften der Liste Tabellenspalten hinzuzufügen.
    2. Ordnen Sie die Spalten mit Hilfe der Auf- und Abwärtspfeile in der folgenden Reihenfolge an: lastName (Nachname), firstName (Vorname), email (E-Mail), employeeID (Mitarbeiter-ID).
    3. Benennen Sie die Spaltentitel um: Nachname, Vorname, E-Mail, Mitarbeiter-ID

      Tipp: Sie können auch nach dem Binden der Tabelle jederzeit zu den Binding-Eigenschaften zurückgehen und die Spalten umbenennen oder umordnen.

    4. Klicken Sie auf OK.

    Nun wird die Mitarbeitertabelle mit einem JRowTableBinder an das Datenobjekt lightEmployeeRecordRows gebunden. Wenn Sie im unformatierten Bereich auf das Datenobjekt lightEmployeeRecordRows klicken, zieht der Visual Editor eine Linie vom Datenobjekt zur Tabelle. Der JRowTableBinder wird auf der Linie durch das Tabellenbindersymbol Tabellenbindersymbol dargestellt. Eine weitere Linie zeigt an, dass das Datenobjekt die webServiceDataSource als Datenquelle verwendet.

    Sicht der Binderlinien für JTable

Überprüfen Sie die Änderungen an Ihrem Projekt und Ihrer Anwendung. Bei dieser Übung haben Sie die Web-Service-Datenquelle, ein Zeilendatenobjekt und einen Binder hinzugefügt, der die employeesTable an das Zeilendatenobjekt bindet. Beachten und überprüfen Sie das neue Paket (jve.generated), das im Projekt erstellt wurde, um alle vom Java Visual Editor generierten Binderklassen zu beinhalten. Beachten Sie darüber hinaus das neue Paket (directory.service), das den Java-Proxy für den Web-Service enthält.

Pakete im Projekt MyDirectory

Wenn Sie nun die Anwendung ausführen, wird die Mitarbeitertabelle vom Web-Service mit den vorhandenen Mitarbeiterdatensätzen gefüllt.

Nun können Sie mit der nächsten Übung fortfahren: .

Nutzungsbedingungen | Feedback
(C) Copyright IBM Corporation 2000, 2005. Alle Rechte vorbehalten.