< Zurück | Weiter >

Lerneinheit 4: Projekt als Client konfigurieren

Genauso wie das Serviceprojekt verwendet das Clientprojekt auch eine EGL-Implementierungsdeskriptordatei. Allerdings enthält im Clientprojekt der EGL-Implementierungsdeskriptor Informationen dazu, wo sich Services befinden. Sie importieren die WSDL-Datei, die Sie aus dem Service erstellt haben, und EGL fügt dem EGL-Implementierungsdeskriptor die entsprechenden Binding-Informationen hinzu, so dass der Client den Service findet.

Dabei erstellt EGL einen Schnittstellenabschnitt, mit dem der Service innerhalb des Clientprojekts dargestellt wird. Sobald der Schnittstellenabschnitt mit dem tatsächlichen Service verknüpft worden ist, können Sie diesen Schnittstellenabschnitt so wie den Service selbst verwenden.

So geht's

EGL-Implementierungsdeskriptordatei einrichten

  1. Öffnen Sie die EGL-Implementierungsdeskriptordatei des Clientprojekts, indem Sie in der Sicht 'Projektexplorer' doppelt auf EGLClient/EGLSource/EGLClient.egldd klicken. Beachten Sie, dass der EGL-Implementierungsdeskriptor keinen Bezug zum Java-Implementierungsdeskriptorordner hat, der sich auch im Projekt EGLClient befindet.
  2. Rufen Sie im Editor für Implementierungsdeskriptor die Registerkarte Service-Bindings auf.
  3. Klicken Sie auf der Registerkarte Service-Bindings auf die Option Hinzufügen.
  4. Klicken Sie im Fenster Service-Binding hinzufügen auf die Option Web-Binding.
  5. Klicken Sie auf Weiter.
  6. Wählen Sie das Kontrollkästchen Wählen Sie die WSDL-Datei im Arbeitsbereich aus, und kopieren Sie sie in das aktuelle Projekt aus.
  7. Klicken Sie auf Durchsuchen.
  8. Wählen Sie die Datei HelloService.wsdl aus, die sich im Projekt EGLService im Ordner EGLSource\wsdl befindet, und klicken Sie anschließend auf OK.
  9. Wählen Sie unter Schnittstellenoptionen das Optionsfeld EGL-Schnittstelle aus WSDL-Datei generieren aus. Wenn diese Option ausgewählt ist, erstellt EGL die Abschnitte automatisch, die Sie zum Zugriff auf den Service benötigen.
  10. Akzeptieren Sie die Standardwerte für die übrigen Felder auf der Seite, und klicken Sie auf Weiter. Auf der Seite Neue EGL-Schnittstelle wird eine Liste aller Services angezeigt, die in der WSDL-Datei beschrieben sind. EGL erstellt für jeden Service, den Sie auf dieser Seite auswählen, einen Schnittstellenabschnitt im Clientprojekt. Zunächst wird hier nur der Service aufgeführt, den Sie im Serviceprojekt erstellt haben.
  11. Stellen Sie sicher, dass das Kontrollkästchen für den Service HelloService aktiviert ist, und klicken Sie anschließend auf Weiter. Auf der nächsten Seite können Sie festlegen, wo der neue Schnittstellenabschnitt erstellt wird und wie er heißt. Außerdem können Sie auswählen, welche Funktionen aus dem Service in den Schnittstellenabschnitt eingeschlossen werden. Standardmäßig werden alle Funktionen des Serviceabschnitts eingeschlossen.
  12. Stellen Sie sicher, dass im Feld Quellenordner der Quellenordner des Clientprojekts angegeben ist: EGLClient\EGLSource.
  13. Stellen Sie sicher, dass im Feld Paket das Paket services angegeben ist.
  14. Stellen Sie sicher, dass das Kontrollkästchen neben der Funktion SayHello in der Liste Funktionen ausgewählt ist. Das Fenster sollte nun wie folgt aussehen:
    Fenster 'Service-Binding hinzufügen'
  15. Klicken Sie auf Fertig stellen. Sie haben nun ein Service-Binding erstellt. Die Webseite, die Sie in diesem Projekt erstellt haben, kann unter Verwendung dieses Bindings auf den Service zugreifen. Das Binding in der Implementierungsdeskriptordatei sieht nun wie folgt auf:
    Implementierungsdeskriptordatei des Clients
  16. Speichern und schließen Sie die Implementierungsdeskriptordatei. Beachten Sie, dass EGL einen Schnittstellenabschnitt im Paket services des Projekts erstellt hat. Der Schnittstellenabschnitt sieht wie folgt aus:
    Neuer Schnittstellenabschnitt

    Diese Schnittstelle ähnelt derjenigen, die Sie in der Serviceanwendung erstellt haben, weist jedoch zusätzliche Eigenschaften auf, die sich auf das Binding in der Implementierungsdeskriptordatei beziehen.

  17. Stellen Sie (ähnlich wie beim Projekt EGLService) sicher, dass der Implementierungsdeskriptor in der Client-Build-Deskriptordatei erscheint:
    1. Klicken Sie doppelt auf den Build-Deskriptor für das Projekt, um es im Buildabschnittseditor zu öffnen. Diese Datei heißt EGLClient.eglbld und befindet sich im Ordner EGLSource des Projekts.
    2. In der Liste der Build-Deskriptoroptionen muss die Option mit dem Namen deploymentDescriptor auf EGLClient gesetzt werden.
    3. Klicken Sie auf OK und schließen Sie die Datei.

Service in der Webseite verwenden

  1. Öffnen Sie den JSF-Handler für die Webseite. Der Name lautet ClientPage.egl.
  2. Erstellen Sie im JSF-Handler eine Variable aus dem Schnittstellenabschnitt. Normalerweise ist es am einfachsten, die Inhaltshilfe zu verwenden, um eine Variable auf diese Weise zu erstellen:
    1. Platzieren Sie in der JSF-Handler-Datei den Cursor auf eine leere Zeile unmittelbar nach den drei Variablen, die Sie im vorherigen Abschnitt erstellt haben.
    2. Geben Sie in der leeren Zeile als erste Zeichen des Schnittstellenabschnitts den folgenden Code ein:
      he	
    3. Drücken Sie die Tastenkombination Strg + Leertaste. Die Inhaltshilfe vervollständigt für Sie die Zeile mit dem folgenden Code:
      helloService HelloService {@bindService};
      Die Inhaltshilfe fügt außerdem dem JSF-Handler die Anweisung import hinzu, so dass Sie diesen Abschnitt verwenden können, ohne dessen vollständige Position anzugeben. Die Ergebnisse sehen wie im folgenden Bild aus:
      Die Inhaltshilfe vervollständigt die Zeile
  3. Rufen Sie in einer leeren Zeile innerhalb der Funktion getHello() die Funktion SayHello() im Service auf, indem Sie ihr die Variablen name und city übergeben und die Ausgabe der Variablen output zuweisen:
    output = helloService.SayHello(name, city);
    Beachten Sie, dass Sie die Inhaltshilfe verwenden können, indem Sie die ersten fünf Zeichen eines Schlüsselworts oder eines Abschnitts eingeben und anschließend die Tastenkombination Strg + Leertaste drücken. Der JSF-Handler sollte nun wie folgt aussehen:
    Code im JSF-Handler
  4. Speichern und schließen Sie den JSF-Handler.
  5. Generieren Sie das gesamte Clientprojekt, indem Sie in der Sicht 'Projektexplorer' mit der rechten Maustaste darauf klicken und anschließend auf Generieren klicken.
  6. Als nächstes müssen Sie zu Testzwecken dem Anwendungsserver mitteilen, welchen Service Sie aufrufen wollen. Klicken Sie in der Sicht "Server" mit der rechten Maustaste auf WebSphere Appplication Server v6.1 und anschließend auf Projekte hinzufügen und entfernen.
  7. Stellen Sie auf der Seite Projekte hinzufügen und entfernen sicher, dass EGLClientEAR und EGLServiceEAR als Konfigurierte Projekte aufgelistet sind. Befindet sich EGLServiceEAR in der Spalte Verfügbare Projekte, klicken Sie EGLServiceEAR zur Hervorhebung an und klicken Sie anschließend auf Hinzufügen und dann auf Fertig stellen. Das Fenster sehen wie im folgenden Bild aus:
    Das vollständige Fenster 'Projekte hinzufügen und entfernen' zeigt EGLServiceEAR als auf dem Server konfiguriert an
    Jetzt kann die Webseite verwendet werden.
  8. Klicken Sie in der Sicht 'Projektexplorer' mit der rechten Maustaste auf die Webseite ClientPage.jsp im Ordner WebContent (nicht auf den JSF-Handler), und klicken Sie anschließend auf die Optionen Ausführen als > Auf Server ausführen.
  9. Klicken Sie im Fenster Neuen Server definieren auf den Radioknopf Vorhandenen Server auswählen und klicken Sie anschließend auf WebSphere Application Server v6.1. Klicken Sie auf Fertig stellen. Der Server publiziert die Seite und zeigt Sie im internen Web-Browser an. Wenn Sie einen externen Web-Browser vorziehen, können Sie die URL-Adresse aus dem internen Web-Browser kopieren und diese in das URL-Adressfeld des externen Web-Browsers einfügen.
  10. Geben Sie in die Felder für den Namen und den Ort die entsprechenden Werte ein, und wählen Sie anschließend die Schaltfläche auf der Seite aus. Das Ausgabefeld enthält eine Zeichenfolge wie "Peter, willkommen in Hamburg!", je nachdem, welchen Namen und welchen Ort sie eingeben (siehe folgende Abbildung):
    Fertig gestellte Seite
Dies mag für diese einfache Aufgabe als ein großer Aufwand erscheinen - diese Projekte veranschaulichen jedoch, wie EGL Services, Clients oder beide zugleich erstellen kann und wie diese Anwendungen zusammenarbeiten. Indem Sie Web-Service und Clients in einer serviceorientierten Architektur einsetzen, können Sie eine Vielzahl von EGL- und Nicht-EGL-Anwendungen flexibel und modular integrieren.
< Zurück | Weiter >