Idee
- Vereinheitlichung der verschiedenen aktuell genutzten Herangehensweisen (AXIS, Fire, RI,…)
- Interoperabilität mit Fremdsystemen (.NET)
- State-of-the-Art Model für die Entwicklung
Historie
- JAX-WS 2.1 verfügbar seit Februar 2007
- > http://jax-ws.dev.java.net
- > http://jcp.org/en/jsr/
- Bis Java 5 als Zusatzpackage erhältlich
- Ab Java 6 Bestandteil der JRE
- Integrierter HTTP Server
- Servlet für Deployment im Web Container
Object / XML Mapping
- mittels JAXB (2.x)
- hohe Performance
- ebenfalls auch als einzelnes Projekt verfügbar
- > http://jaxb.dev.java.net
WSDL to Service
- Ausgangspunkt WSDL, Skeleton bauen, Annotation @WebService(endpointInterface(name=“AddNumbersPort“))
- Deploy 1: Klasse Endpoint; Methode publish. Integriert in JAX-WS
- Deploy 2: über JAX-WS im Web Cotainer, com.sun.xml.transport.http.servlet WSServlet – für „spezielel „Wünsche, zB Load Balancing
- Deploy: interner Server für Service Deployment
- Deploy: main-Methode + Endpoint.publish(„http://localhost:8080/addnumbers“)
- Nutze Annotatins für Konfiguration! @WebMethod, @WebResult, @RequestWrapper…
- Aufruf wie gewohnt über http://localhost:8080/addnumbers?wsdl
WAX-WS Handler
- Logical Handler – Unabhängig vom Protokoll, Zugriff auf Nachrichteninhalt
- SOAP HAndler – Zugriff auf vollständige Nachricht + SOAP HEader
Remote Persistent Objects
- Client <-> Hibernate JPS Service <-> POJOs
- Annotationen: @Stateful @WebService @Adressing
- Zugabe Annotation: @Entity = JPA! reicht aus für die Kennzeichnung als persistentes Objekt
JAX-WS und Java 6
- kein ANT Task vorhanden. Wenn Einsatz mit ANT geplant muss die Standalone-Version verwendet werden
- meist ältere Versionen. Bei der Erstellung von JRE’S wird jeweils der Snapshot des JAX-WS-Repositorys verwendet, was bei aktueller Entwicklungsgeschwindigkeit schnell outdated sein kann
- Update über Java Extensions Mechanismus möglich
- Besserung in Java 7 (Modulkonzept) in Sicht (?)
…
thanks to Andreas Holubek! Great!