First page Back Continue Last page Overview Text

Notes:


Einen SOAP-Webservice mit Java zu programmieren ist wirklich einfach, da eigentlich jede beliebige Klasse zu einem Webservice umfunktioniert werden kann. Im Gegensatz zu RMI muss die Klasse weder ein besonderes Interface implementieren noch von irgend einer Klasse erben. Es reicht einfach, dass die Klasse überhaupt da ist. Man nennt sie daher auch POJO für „Plain Old Java Object“.

Jedoch sind Ihnen sicher die vielen Zeilen mit dem @ davor aufgefallen. Es handelt sich dabei um sog. Annotationen, die zwar keine ausführbaren Anweisungen beinhalten, jedoch wichtige Zusatzinformationen zum Quellcode beinhalten, die zur Laufzeit ausgewertet werden können. Und genau das passiert hier: Wenn Sie diese Klasse in einem Webcontainer deployen, liest der Webcontainer die Annotationen aus und erkennt dadurch, dass die Klasse als SOAP-Webservice aufrufbar gemacht werden soll. (Vielleicht erinnern Sie sich noch an die @Servlet-Annotation, die wir letztes Semester verwendet haben, um die URL einer Servletklasse zu definieren. Das war dasselbe Prinzip.)

Wirklich benötigt wird eigentlich nur die @WebService-Annotation, da sie den Namen des Webservices definiert. Jedoch sollte man wie in dem Beispiel immer auch das Attribut targetNamespace angeben. Denn dadurch werden alle XML-Elemente in einem eigenen XML-Namensraum angelegt, wodurch Überschneidungen mit anderen XML-Formaten vermieden werden.

Nicht alle Methoden einer Klasse müssen zwangsläufig auch als Webservice aufrufbar sein. Deshalb muss man vor mindestens eine Methode noch @WebMethod schreiben, damit der Webservice überhaupt genutzt werden kann. Alle anderen Methoden (ohne die Annotation) lassen sich nur innerhalb des Webcontainers als normale Objektmethoden aufrufen.

Die Bedeutung der anderen Annotationen erfahren Sie auf der nächsten Folie.