Читать книгу Web Services mit Apache CXF - Axel Eberhard Leistner - Страница 8

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 mit den 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:



Klasse ObjectFactory.java innerhalb src\org\example\guestbook\service:



Web Services mit Apache CXF

Подняться наверх