1. Auflage 2013
Alle Rechte, auch für die Übersetzung, vorbehalten. Kein Teil des Werkes darf in irgendeiner Form (Druck, Fotokopie, Mikrofilm oder einem anderen Verfahren) ohne schriftliche Genehmigung des Verlages reproduziert, vervielfältigt oder verbreitet werden.
Alle technischen Angaben und Programme in diesem Buch wurden vom Autor mit größter Sorgfalt erarbeitet bzw. zusammengestellt. Trotzdem sind Fehler nicht ganz auszuschließen. Verlag und Autor übernehmen keine Gewähr für die Funktion einzelner Programme oder Teile derselben. Insbesondere wird keinerlei Haftung übernommen für eventuelle aus dem Gebrauch resultierende Folgeschäden.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenzeichen usw. in diesem Werk berechtigen auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutzgesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
Da es nicht möglich ist, in allen Fällen zeitnah zu ermitteln, ob ein Markenschutz besteht, wird das ®-Symbol in diesem Buch nicht verwendet.
Web Services mit Apache CXF
Axel Eberhard Leistner
published by: epubli GmbH, Berlin
www.epubli.de
Copyright: © 2013 Axel Eberhard Leistner
ISBN 978-3-8442-5250-7
Inhaltsverzeichnis
Vorwort 5 Vorwort Web Services begegnen uns öfter als wir vermuten. Meist verbergen sie sich hinter anderen Begriffen wie „App“ oder „Cloud“. Wie man das Kind auch letztlich nennt: Es geht hier immer darum, dass ein Server, der aus dem Internet leicht erreichbar ist, einen Dienst bereitstellt, der von Clients genutzt werden kann. Diese Clients sind oft erkennbar als „Webbrowser“ oder aber Anwendungen, die im Internet Anfragen stellen können und auf eine Antwort warten. Ziel dieses Buches ist es zu zeigen, was hinter einem Web Service steckt. Wir wollen mit einfachen Mitteln einen Service aufbauen, der auf einem Application Server wie Tomcat laufen kann. Dann wollen wir verschiedene Clients ausprobieren, um den Service zu testen. Da es uns nicht darum geht, eine besonders interessante Spezialanwendung zu entwickeln, haben wir uns entschieden, das gute alte Beispiel eines Gästebuches neu zu beleben. Das hat einfache Gründe. Alles, was wir brauchen, um einen Dienst mit Eingaben über ein Formular und Ausgaben auf einem Bildschirm zu entwickeln, lässt sich hier leicht darstellen. Und unser Ziel ist letztlich nicht das Gästebuch, sondern die Kenntnis über den Bau eines Web Services. Nach dem zügigen Aufbau von Server- und Client-Programmen schauen wir uns die Theorie an, die hinter dem Ganzen steckt. Die Beleuchtung des Hintergrundes nimmt dabei den größten Teil des Buches ein. Mit dem Gesamtverständnis, das dieses Buch vermitteln will, kann der interessierte Leser schnell selbst einen Web Service programmieren. Dabei ist es egal, ob er eine Suchmaschine im Internet anbieten will, einen neuen Webshop oder eine App für Smartphone – mit den passenden Tools und genauer Planung des Services sollte das sofort gelingen.
Web Service Tutorium - Erstellung eines Gästebuchs 6
Service-Projekt erstellen. 14
XSD: Gästebuch-Schema erstellen. 16
WSDL: Gästebuch-Service-Schnittstelle erstellen. 22
Generierung der Java-Klassen. 32
Service: Implementierung des Gästebuch-Web Services 53
Implementierung des Gästebuch-Clients 60
Grundlagen für das Verständnis eines Web Services 94
Die XSD – Typen-Entwicklung in XML. 94
Die WSDL – Aufbau eines SOAP Services 101
Apache CXF – automatische Erstellung eines Web Services 109
Servlets - Die Grundlagen. 125
Servlet-Container 125
Packages 126
Häufig verwendete Interfaces und Klassen. 127
HTTP-Grundlagen. 130
Aufbau der URLs 131
HTTP-Methoden. 131
Wichtige HTTP-Statuscodes 133
JSP – Grundlagen. 136
Die Syntax von JSPs und ihre Bestandteile. 137
Implizite Objekte. 141
Client-Anfragen. 147
Beans in JSPs 149
JSP-Standardaktionen. 154
Fehler- und Ausnahmebehandlung. 157
Expression Language. 160
Java Standard Tag Library (JSTL) 164
Internationalisierung. 165
Servlet-Filter 167
Abbildungsverzeichnis 170
Web Services begegnen uns öfter als wir vermuten. Meist verbergen sie sich hinter anderen Begriffen wie „App“ oder „Cloud“. Wie man das Kind auch letztlich nennt: Es geht hier immer darum, dass ein Server, der aus dem Internet leicht erreichbar ist, einen Dienst bereitstellt, der von Clients genutzt werden kann. Diese Clients sind oft erkennbar als „Webbrowser“ oder aber Anwendungen, die im Internet Anfragen stellen können und auf eine Antwort warten.
Ziel dieses Buches ist es zu zeigen, was hinter einem Web Service steckt. Wir wollen mit einfachen Mitteln einen Service aufbauen, der auf einem Application Server wie Tomcat laufen kann. Dann wollen wir verschiedene Clients ausprobieren, um den Service zu testen.
Da es uns nicht darum geht, eine besonders interessante Spezialanwendung zu entwickeln, haben wir uns entschieden, das gute alte Beispiel eines Gästebuches neu zu beleben. Das hat einfache Gründe. Alles, was wir brauchen, um einen Dienst mit Eingaben über ein Formular und Ausgaben auf einem Bildschirm zu entwickeln, lässt sich hier leicht darstellen. Und unser Ziel ist letztlich nicht das Gästebuch, sondern die Kenntnis über den Bau eines Web Services.
Nach dem zügigen Aufbau von Server- und Client-Programmen schauen wir uns die Theorie an, die hinter dem Ganzen steckt. Die Beleuchtung des Hintergrundes nimmt dabei den größten Teil des Buches ein.
Mit dem Gesamtverständnis, das dieses Buch vermitteln will, kann der interessierte Leser schnell selbst einen Web Service programmieren. Dabei ist es egal, ob er eine Suchmaschine im Internet anbieten will, einen neuen Webshop oder eine App für Smartphone – mit den passenden Tools und genauer Planung des Services sollte das sofort gelingen.
Web Service Tutorium - Erstellung eines Gästebuchs
Dieses Tutorium beschreibt, wie ein Gästebuch als Web Service erstellt wird. Dabei verwenden wir die Werkzeuge Eclipse, Apache CXF und Apache Tomcat 7.0. Zunächst bauen wir einen Dienst auf dem Server auf. Zum Test der Funktionsweise des Gästebuch-Web-Services entwickeln wir dann eine Java-Client-Applikation, die den Web Service benutzt. Wir verfolgen den sogenannten Top-Down-Ansatz (WSDL-to-Java). Dabei wird zuerst die Service-Schnittstelle festgelegt und anschließend auf Basis dieser Schnittstelle die Service-Implementierung angelegt.
Dieses Tutorium setzt voraus, dass die Java JDK (hier: jdk1.7.0_17-64bit) und Eclipse (hier: eclipse-4.3“ aus eclipse-jee-kepler-M5-win32-x86_64) installiert ist, und dass weiterhin Eclipse korrekt mit Tomcat (hier: apache-tomcat-7.0.37-64bit) verbunden wurde. Dazu nehmen wir eine Basiskonfiguration innerhalb von Eclipse vor.
Eclipse bietet die Möglichkeit Zeilennummern für Quellentexte auszugeben. Wir wählen im Eclipse-Menü Window
->
Preferences
->
General
->
Editors
->
Text Editors
aus und setzen den Haken beim Parameter Show line numbers
. Drücken Sie dann auf den Schalter Apply
am Ende des Fensters .
Abbildung 1: Editor in Eclipse konfigurieren - Zeilennummern
Eclipse hat bereits eine Java-Umgebung als Standardumgebung eingetragen. Wir wollen aber die von uns installierte JDK 1.7.0 Version 17 verwenden. Dazu legen wir nun eine neue Java JRE in Eclipse an: Wir wählen im Eclipse-Menü die Kombination Window
->
Preferences
->
Java
->
Installed JREs
aus. Drücken Sie auf den Schalter Add…
(Abbildung 2) und danach im folgenden Fenster auf Standard VM
und Next
. Wählen Sie mit Hilfe des Schalters Directory…
eine JRE-Home
aus und jetzt klicken Sie auf den Schalter Finish
(Abbildung 3).
Читать дальше