Jakarta XML Web Services

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 12. Februar 2016 um 21:08 Uhr durch FNDE (Diskussion | Beiträge) (Änderungen von 193.149.58.3 (Diskussion) auf die letzte Version von 77.56.53.183 zurückgesetzt). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen

Die Java API for XML Web Services (JAX-WS) ist eine Java-API zum Erstellen von Webservices. JAX-WS wurde in der Java Platform Enterprise Edition 5 eingeführt und ist seit der Version 1.6 auch Teil der Java Platform, Standard Edition.[1]

JAX-WS baut auf JAX-RPC auf, ist Teil von Web Services Interoperability Technology und somit auch Teil der sogenannten Metro-Plattform. Wie andere Java EE-APIs benutzt auch JAX-WS Annotationen, um die Entwicklung und das Deployment von Webservice-Clients und Service-Endpunkten zu vereinfachen.

Funktionsweise von JAX-WS

Client und Endpunkt kommunizieren über SOAP-Nachrichten. JAX-WS benutzt SAAJ, um SOAP-Nachrichten zu erzeugen. JAX-WS ist protokoll- und transportunabhängig. Standardmäßig wird allerdings SOAP 1.1 und HTTP verwendet.

Um die Daten richtig verarbeiten zu können, müssen die XML-Datentypen in Java-konforme Datentypen umgewandelt werden. Das wird von JAX-WS an JAXB (Java Architecture for XML Binding) delegiert. So kann die XML-Verarbeitung im Wesentlichen dem Programmierer verborgen bleiben.

Erstellen von Webservice-Endpunkten und -Clients

Serverseite

Es gibt zwei verschiedene Wege, Service-Endpunkte aufzubauen: Code First (Bottom Up) über POJOs und Contract First (Top Down) über WSDL.

Start mit POJOs (Bottom Up)

Im Gegensatz zur vorhergehenden Entwicklungsweise (JAX-RPC), bei der zum Erstellen eines Webservice-Endpunktes eine Schnittstelle definiert und eine Klasse geschrieben wird, welche die Schnittstelle implementiert, können bei JAX-WS einfach nur POJOs, die bereits in einer Anwendung vorliegen, verwendet werden. Um dies zu ermöglichen, werden diese durch Java-Annotations zu einem Webservice erweitert. Auch die Deployment-Deskriptoren werden durch die Annotations überflüssig.

Start mit WSDL (Top Down)

Klassen werden aus der WSDL-Beschreibung des Serviceinterfaces generiert und vom Nutzer ergänzt.

Clientseite

Auf der Clientseite muss ein lokales Proxy-Objekt erzeugt werden, welches ebenfalls die Schnittstelle des Webservices implementiert (generiert aus WSDL). Bei JAX-WS holt sich der Client seinen Proxy nicht aus einer Factory. Er konstruiert ein ServiceObjekt mit dem new-Operator, ruft die getServicePort-Methode auf, um ein Proxy zu bekommen, und führt seine Methodenaufrufe auf dem Proxy-Objekt aus, als wäre der Webservice lokal verfügbar. Die JAX-WS-Laufzeitumgebung schickt die Aufrufe von dem Proxy-Objekt an den Webservice weiter, welcher dann die Operationen durchführt und das Ergebnis an den Client zurückschickt.

Unterstützte WS-* Standards

Die folgenden WS-*-Standards sind in der Referenzimplementierung von JAX-WS umgesetzt:[2][3]

Zurzeit wird nur WSDL 1.1 unterstützt, nicht WSDL 2.0.

Weblinks

Einzelnachweise

  1. Introducing JAX-WS 2.0 With the Java SE 6 Platform, Part 1
  2. http://wiki.apache.org/ws/StackComparison
  3. 1.4. Metro Specifications