Axel Eberhard Leistner

Web Services mit Apache CXF


Скачать книгу

36: Eigenschaften-Sicht öffnen

      Abbildung 37: Port-Adresse ändern

      Die Operationen getEntries und insertEntry stellen Sie mit einem Rechtsklick auf den portType GuestBook (Abbildung 38) und durch Verwendung von Add Operation bzw. durch Umbenennen der vorhandenen Operation dar.

      Abbildung 38: Service-Operationen definieren

      Entfernen Sie zur Operation insertEntry die Output-Nachricht. Dazu klicken Sie zunächst auf den Pfeil rechts zum dem Eintrag output (Abbildung 39).

      Abbildung 39: Eintrag output von insertEntry auswählen durch Klick auf Pfeil

      Löschen Sie insertEntryResponseType und insertEntryResponse durch Klick auf den Schalter Delete (Abbildung 40 und Abbildung 41).

      Abbildung 40: Eintrag insertEntryResponseType löschen

      Abbildung 41: Eintrag insertEntryResponse löschen

      Speichern Sie jetzt die Änderungen. Schließen Sie danach den Inline Schema Editor. Löschen Sie nun den Eintrag output im GuestBook-Schema durch Klick auf den Schalter Delete (Abbildung 42).

      Abbildung 42: Eintrag output löschen

      Nun öffnen wir über die Output-Nachricht der Operation getEntries des getEntriesResponse-Elements den Inline Schema Editor. Klicken Sie dazu auf den Pfeil rechts zur Operation (Abbildung 43).

      Abbildung 43: Wechsel zum Inline Schema Editor

      Suchen Sie in der Design-Übersicht den GuestBookType-Schema-Typ aus unserer XSD, indem Sie auf die Kombination Set Type -> Browse... klicken (Abbildung 44). Klicken Sie auf den Schalter Enclosing Project, damit im gesamten Projekt nach den passenden Schema-Definitionen gesucht wird (Abbildung 45). Damit wird sofort unser Gästebuch-Typ aus unserer XSD-Datei gefunden. Aktivieren Sie diesen Typ mit Klick auf den Schalter OK. Nun speichern wir unsere Änderungen und schließen den Inline-Editor.

      Abbildung 44: GuestBook-Schema-Typ suchen

      Abbildung 45: Gästebuch-Typ aus der XSD auswählen

      Damit haben wir den Typ des getEntriesResponse auf den Wert GuestBookType aus unserer XSD gesetzt.

      Abbildung 46: Geänderter GuestBookType

      Wechseln Sie wieder zum Inline Schema Editor. Nun bearbeiten Sie das Element insertEntry der Input-Nachricht zur Operation insertEntry. Aktivieren Sie den GuestBookEntryType (Abbildung 47).

      Abbildung 47: Gästebucheintrag-Typ aus der XSD auswählen

      Speichern Sie jetzt wieder die Änderungen und schließen Sie danach den Inline Schema Editor.

      Abbildung 48: Zurück aus dem Editor

      Wechseln Sie zum Inline Schema Editor des Elements getEntries und löschen Sie den getEntriesType (Abbildung 49).

      Abbildung 49: getEntriesType löschen

      Im Source-Fenster löschen Sie den wsdl-message Eintrag „insertEntryResponse“ (Abbildung 50).

      Abbildung 50: wsdl-message "insertEntryResponse" löschen

      Aktualisieren Sie das Binding mit Rechtsklick auf das zugehörige Symbol und wählen Sie Generate Binding Content... aus (Abbildung 51). Dort wählen Sie nun Overwrite existing binding information und klicken anschließend auf den Schalter Finish (Abbildung 52).

      Abbildung 51: Binding-Content erzeugen

      Abbildung 52: Bestehende Binding-Informationen sollen überschrieben werden

      Damit ist die Schnittstelle definiert:

      Generierung der Java-Klassen

      Nun kann Eclipse für uns automatisch Schema-Klassen, Service-Interface und Client-Stubs generieren. Klicken Sie im Verzeichnisbaum unterhalb xml zuerst einmal auf die WSDL-Datei GuestBook.wsdl. Mit Rechtsklick wählen Sie dann New -> Other... -> Web Services -> Web Service aus (Abbildung 53).

      Abbildung 53: Aus der WSDL heraus einen Web Service anlegen

      Wir wählen als Web service type den Top-Down-Ansatz, um aus einer WSDL den Java-Code zu erstellen. Die Service definition ist dabei unsere gerade erstellte WSDL-Datei unter dem Namen /GuestBookService/xml/GuestBook.wsdl.

      In der Konfiguration sehen wir bereits den zu Beginn eingerichteten Server Tomcat 7.0 und das Werkzeug Apache CXF 2.x sowie das Service project mit dem Namen GuestBookService (Abbildung 54).

      Abbildung 54: Top-Down Erstellung der Web Service Quellendateien

      Damit wir den Dienst gleich testen können, legen wir hier auch einen Client an. Dabei werden alle notwendigen Projektdateien für einen Java-Client erstellt. Ziehen Sie dazu den Regler am linken Rand der Client-Konfiguration bis ganz nach oben. Klicken Sie zusätzlich den Schalter Monitor the web service an, um die Ergebnisse auch in einem TCP/IP-Monitor überprüfen zu können.

      Klicken Sie dann dreimal auf den Schalter Next. Klicken Sie im danach geöffneten Fenster auf den Schalter Start Server und dann auf Finish.

      Nachdem alle Dateien erstellt und übersetzt wurden, sehen Sie eine Darstellung des Web Service Explorer, von dem aus die Anwendung sofort getestet werden kann (Abbildung 55). Im Fenster Actions sehen Sie die eingerichteten Operations