Was ist neu in JAX-RS 2.0?

Judith Lungstraß

JAX-RS 2.0 liegt derzeit als Public Draft vor. Während sich die Phase der Public Review langsam ihrem Ende nähert, wird es Zeit, sich die neue Version der Java-Spezifikation des REST-APIs einmal genauer anzusehen. Bill Burke arbeitet bei Red Hat und trägt derzeit zur JBoss JAX-RS-Implementierung Resteasy bei. Als JAX-RS-Experten hat er die neuen Features zusammen gefasst.

Noch in Version 1.0 hatte ein Client API vollständig gefehlt, jede einzelne JAX-RS-Implementierung musste ihre eigene proprietäre Schnittstelle schreiben. Mit JAX-RS 2.0 gibt es nun ein flüssiges, low-level, request-building API. Auch ein asynchrones API sowie ein Callback API werden unterstützt, wodurch sich HTTP Requests im Hintergrund ausführen lassen.

Serverseitiges asynchrones HTTP wird in JAX-RS 2.0 genutzt zur Implementierung von long-polling Interfaces oder zum serverseitigen Push. Der Support hierfür ist Annotations-getrieben und funktioniert analog zu der Art, wie die Servlet-3.0-Spezifikation über das AsyncContext Interface mit asynchronem HTTP umgeht.

Mit JAX-RS 2.0 kommen außerdem einige Filter und Interceptoren hinzu. So gibt es ein Interceptor API, über das man Authentification, Caching oder Encoding hinzufügen kann, ohne den Anwendungscode zu beeinträchtigen. Entweder verwendet man Filter oder Entity-Interceptoren. Filter be- und verarbeiten Requests oder Response Headers und werden, entweder auf der Client- oder auf der Server-Seite, vor dem Processing ausgeführt. Entity-Interceptoren kümmern sich um HTTP Message Bodies und wickeln sich um die Ausführung von MessageBodyReader- und MessageBodyWriter-Instanzen.

Wer JAX-RS 2.0 schon einmal praktisch ausprobieren möchte, kann das mit den Implementierungen von Resteasy 3.0 oder Oracle Jersey tun.

Geschrieben von
Judith Lungstraß
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.