Web Services mit Apache CXF. Axel Eberhard Leistner
Читать онлайн книгу.Namen
getEntries
und insertEntry
. Diese Operationen können Sie im Navigator
unterhalb der GuestBookSOAP
aufklappen und danach im Actions
Fenster die Eingaben zum Test der Anwendungen eingeben.
Abbildung 55: Ergebnis der Erstellung von Interface etc.
Die Ausgaben sehen wir uns anschließend im Status-Fenster an sowie in der Tomcat-Server-Console und im TCP-Monitor.
Öffnen Sie also nun die Einträge im Navigator mit der Sicht des WSDL Main
unterhalb des Eintrags GuestBookSOAP
(Abbildung 55).
Geben Sie jetzt im Body-Fenster ein paar Daten ein, die Sie als Nachricht im Gästebuch ablegen möchten (Abbildung 56).
Im Status
Fenster (Abbildung 57) sehen Sie nun die erstellte SOAP-Nachricht nach Klick auf den Schalter Source
. Dabei interessieren uns hier die Angaben im Body-Block der XML-Struktur. Was wir hier sehen, ist die Nachricht, die ein Client an den Server des Web Services abgesendet hat. In den folgenden Bildschirmseiten werden wir die Wirkung des Web Service Dienstes weiter untersuchen.
Abbildung 56: Eingabedaten für Methode insertEntry
Abbildung 57: SOAP für die Eingabe der Daten
Auch auf der Console
sehen Sie die Aktivitäten rund um diese Anwendung (Abbildung 58).
Abbildung 58: Ausgabe der Server-Console
Abbildung 59: Ausgabe des TCP/IP-Monitors
Ein Blick auf den TCP/IP-Monitor zeigt den Request auf der linken Seite und die Erfolgsmeldung rechts: Accepted
(Abbildung 59).
Nun versuchen wir, eine Ausgabe der in der Anwendung gespeicherten Nachrichten zu erhalten. Dazu wählen Sie die Anwendung getEntries
und klicken auf den Schalter Go
(Abbildung 60).
Abbildung 60: Test der Ausgabe von Daten
Die Ausgabe entspricht dabei wohl noch nicht dem, was Sie erwarten würden: Hier ist nicht die Nachricht zu sehen, die Sie gerade eingegeben haben, sondern die Testnachricht, die bei der Erstellung des Clients angelegt wurde. Zur Änderung der Ausgabe müssen wir zunächst den Source-Code bearbeiten.
Im Status-Fenster sehen wir eine formatierte Ausgabe der Rückantwort unseres Web Services (Abbildung 61).
Abbildung 61: Ausgabe der Ergebnisse aus Methode getEntries
Wenn Sie dann auf den Schalter Source
rechts oben im Status-Fenster klicken, sehen Sie die XML-Darstellung der abgesendeten Anforderung sowie die Rückantwort (Abbildung 62).
Abbildung 62: Request und Response der Ausgabe-SOAP
Was wir aber bereits sehen können, ist die Darstellung der WSDL, wie diese in einem Browser angezeigt wird. Dazu geben wir im Browser des Eclipse die folgende URL ein:
In Abbildung 63 sehen wir unterhalb des Verzeichnis-Knotens WEB-INF
ein von Eclipse erstelltes Unterverzeichnis wsdl
mit einer WSDL- und einer XSD-Datei. Bei der Ausgabe in Abbildung 63 wird nun genau diese WSDL verwendet, nicht die Datei im von uns angelegten Unterverzeichnis xml
. Bei einer Weitergabe einer WSDL an „Kunden“ dieses Dienstes, die danach ihre eigene Client-Anwendung beispielsweise als JSP-Client schreiben wollen, muss genau diese vom System erstellte WSDL-Datei weitergegeben werden.
Abbildung 63: WSDL im Browser-Fenster des Eclipse
Abbildung 64: Web Service Explorer aus WSDL-Umgebung aufrufen
Wenn Sie die Anwendung später erneut testen wollen, so erreichen Sie dies ebenfalls durch die neu erstellte WSDL-Datei. Mit Rechtsklick auf diese WSDL wählen Sie Web
Services -> Test with Web Service Explorer
(Abbildung 64), danach können Sie die gleichen Anwendungen ausprobieren wie bereits oben beschrieben.
Abbildung 65: Umgebung auswählen
Abbildung 66: Test des getEntries-Aufrufs
Nachfolgend werden alle Quell-Dateien wiedergegeben, die vom System angelegt wurden.
Klasse GuestBookEntryType.java
in src\org\example\guestbook\schema
:
Klasse GuestBookType.java
innerhalb src\org\example\guestbook\schema
:
Klasse ObjectFactory.java
innnerhalb src\org\example\guestbook\schema
:
Klasse package-info.java
innerhalb src\org\example\guestbook\schema
:
Die Klasse GuestBook_GuestBookSOAP_Server
steht im Unterverzeichnis src\org\example\guestbook\service
:
Klasse GuestBook_Service.java
in src\org\example\guestbook\service
:
Klasse GuestBook.java
innnerhalb src\org\example\guestbook\service
:
Klasse GuestBookImpl.java
innerhalb src\org\example\guestbook\service
: