Web Services mit Apache CXF. Axel Eberhard Leistner
Читать онлайн книгу.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