Axel Eberhard Leistner

Web Services mit Apache CXF


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

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: