Einrichtung eines speziellen Projektes. Hierfür hat Eclipse einige Varianten zur Auswahl.
Erstellen Sie in Eclipse ein Web-Projekt. Dazu wählen Sie im Kontext-Menü der Projektansicht die Kombination File
-> New -> Project...
und danach die Kombination Web -> Dynamic Web Project
(Abbildung 17). Klicken Sie auf den Schalter Next
.
Abbildung 17: Neues Projekt anlegen
Wir wollen den Service GuestBookService
nennen. Die Target Runtime sollte bereits auf Apache Tomcat v7.0
stehen. Klicken Sie auf den Schalter Finish
.
Nun kann die eigentliche Arbeit losgehen. In den folgenden Unterkapiteln wollen wir die Datentypen definieren und unseren Web Service spezifizieren. Im Anschluss daran lassen wir Eclipse den Quellcode generieren und passen diesen im Nachgang an unsere Anforderungen an.
Abbildung 18: Dynamic Web Projekt einrichten
XSD: Gästebuch-Schema erstellen
Für die XML-Dateien benötigen wir einen eigenen Ordner im Projektverzeichnis. Wählen Sie also im Kontextmenü der Projektansicht New -> Folder
. Geben Sie den Ordnernamen als xml
ein und klicken Sie auf den Schalter Finish
(Abbildung 19). Im XML-Verzeichnis wollen wir unser XML-Schema ablegen. Wählen Sie aus dem Kontextmenü dieses XML-Ordners heraus die Kombination New -> Other… -> XML -> XML Schema File
. Klicken Sie jetzt auf den Schalter Next
(Abbildung 20).
Abbildung 19: Ordner für XML-Dateien anlegen
Abbildung 20: XML-Schema-Datei anlegen
Wir wollen unser Schema GuestBook.xsd
nennen (Abbildung 21).
Abbildung 21: XML-Schema mit Namen GuestBook.xsd definieren
Abbildung 22: XML- Schema-Namespace verändern
Ändern Sie den Schema-Namespace mit Rechtsklick über dem Schema
und Klick auf Show properties
(Abbildung 22):
Abbildung 23: Schema-Namespace eingeben
Wir wollen nun ein Gästebuch-Schema-Typ namens GuestBookType
erstellen, dazu klicken wir mit der rechten Maustaste über Types
und wählen Add Complex Type
aus.
Abbildung 24: Erstellen eines Gästebuch-Schema-Typs
Auf den neu erstellten Typ klicken wir doppelt und fügen dann ein Gästebucheintrag-Element zu diesem Gästebuch-Typ hinzu, indem wir mit der rechten Maustaste auf GuestBookType
klicken und danach Add Element
anklicken. Das Element soll nun den Namen entry
erhalten.
Abbildung 25: Gästebucheintrag-Element hinzufügen
Erstellen Sie einen neuen Schema-Typ mit dem Namen GuestBookEntryType
, klicken Sie dazu zunächst mit der rechten Maustaste und dann durch die Kombination string -> Set Type -> New...
(Abbildung 26).
Abbildung 26: Neuen Schema-Type definieren
Fügen Sie dem GuestBookEntryType
ein Attribut mit dem Namen ID
(mittels Add Attribute
) und Elemente (mittels Add Element
) mit den Namen name
, eMail
und message
hinzu.
Abbildung 27: Name des neuen Schema-Typs eingeben
Abbildung 28: Attribut und Elemente eintragen
Abbildung 29: Definitionen des Schema-Typs
Die Multiplizität des Gästebuch-Typs stellen Sie nun auf 0..* (Zero or more)
.
Abbildung 30: Multiplizität eingeben
Speichern Sie jetzt das Schema, wechseln Sie in die Übersicht (Kreis in Abbildung 31) und speichern Sie die Konfiguration des GuestBook.xsd
ab.
Abbildung 31: Schema verlassen und anschließend speichern
Damit haben wir ein XSD-Schema eingerichtet, mit dem wir später in der WSDL arbeiten wollen.
Abbildung 32: Das fertige GuestBook.xsd Schema
Das Schema GuestBook.xsd
hat damit folgendes Aussehen:
WSDL: Gästebuch-Service-Schnittstelle erstellen
Im XML-Ordner erstellen wir eine neue WSDL. Wählen Sie im Menü des XML-Ordners die Kombination New -> Other... -> Web Services -> WSDL File
. Klicken Sie auf den Schalter Next
(Abbildung 33). Geben Sie der WSDL-Datei den Namen GuestBook.wsdl
(Abbildung 34).
Abbildung 33: WSDL-Datei anlegen
Klicken Sie auf Next
(Abbildung 34).
Ändern Sie den Target Namespace zu
Alle anderen Einstellungen bleiben unverändert. Klicken Sie auf Finish
.
Abbildung 34: Name der WSDL-Datei festlegen
Abbildung 35: Target Namespace angeben
Führen Sie auf den Port einen Rechtsklick aus und danach wählen Sie Show properties
. Dadurch öffnen Sie die Properties-View (Abbildung 36). Die Port-Adresse des Service ändern Sie auf
(Abbildung 37). Unter dieser URL kann der Service später angesprochen werden.