Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Java EE 8: Ein erster Blick

JAX-RS 2.1

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die JAX-RS-Spezifikation 2.1 integriert sich in moderne Programmierparadigmen und moderne Serverumfelder, indem sie die Reactive Client API definiert und Server Sent Events unterstützt.

Transkript

JAX-RS ist das in der Java EE enthaltene Framework für die Nutzung von RESTful Web Services. Und dieses Framework hat in der Version 2.1 im Kontext der Java EE 8 schon einige bemerkenswerte Erweiterungen erfahren. In diesem Video werden wir uns diese Erweiterungen anschauen und auch bewerten, welche Vorteile sie in der täglichen Arbeit bringen. JAX-RS legt den Fokus in der Weiterentwicklung auf zwei Bereiche. Der eine Bereich ist das sogenannte Reactive Client API, das heißt die Erweiterung der Schnittstelle auf Seiten des Clients, um dort mit Reactive Frameworks wie beispielsweise RxJava interagieren zu können. Der zweite Fokusbereich ist die Unterstützung für Server Sent Events, das heißt für die Möglichkeit, vom Server aus zum Client Daten zu schicken, ohne dass der Server blockiert, ohne dass der Client jetzt synchron auf das Eintreten dieser Ereignisse warten muss, sondern er eben in der Lage ist asynchron und wie bereits angedeutet reaktiv damit umgehen zu können. Reaktive Entwicklung ist etwas, dass im Java-Umfeld in den letzten Jahren gewaltig Fuß gefasst hat. Das ist ein Ansatz, der es erlaubt asynchron und nebenläufig zu arbeiten und dabei eben das Front-End oder die Hauptapplikation nicht zu blockieren. Bisher gibt es im JAX-RS-Umfeld keine Unterstützung dafür. Das hat sich mit der Version 2.1 geändert. Hier haben wir die Möglichkeit auf Ebene des Clients mithilfe der neuen Rx-Methode zu arbeiten, die es uns erlaubt, unser reaktives Framework der Wahl miteinzubeziehen und dann mithilfe dieses Frameworks asynchron auf Ereignisse und auf Rückgaben vom Server zu reagieren. Das Ganze ist bewusst eine offene Implementierung, denn es gibt aktuell keine Java 8 Unterstützung im Rx-Umfeld. So etwas wie Reactive Extensions gibt es dann erst mit der Version 9 von Java. Die Interfaces FlowableProvider und FlowableInvoker, die wir auch gerade eben gesehen haben, sind deswegen offene Interfaces, das heißt beliebige 3rd-Party-Komponenten können diese implementieren und sich auf die Art und Weise in die Reactive Client API integrieren. Das ist der selbe Ansatz, den Oracle auch schon im JPA-Umfeld gegangen ist und den sie auch schon im JAX-RS-Umfeld generell gehen, dass sie dort unterschiedliche Frameworks zulassen, die im Grunde nur die Interfaces implementieren müssen und dann gegeneinander austauschbar sind. Das liegt durchaus im Interesse des Entwicklers diese Auswahl zu haben. Ein weiteres Highlight ist die Unterstützung für Server Sent Events. Bisher ist es ja so, dass ein Request genau ein Response zur Folge hatte, also Anforderung zu Antwort führte. Das hat sich mit HTTP/2 geändert. Da ist es möglich mehrere Rückgaben zu generieren und das wird hier im Kontext der JAX-RS-Spezifikation auch unterstützt, wir sind also in der Lage Rückgaben asynchron zu versenden, wir sind in der Lage mehrere Rückgaben zu versenden, ohne dass wir dabei mehrere Sockets und Verbindungen offen haben müssen. Da die JAX-RS-Spezifikation sowohl Client- als auch serverseitig einsetzbar ist, ist es möglich das auch in beide Richtungen zu verwenden. Die Unterstützung sieht vor, dass es einen neuen Mediatyp auf Ebene von Methoden gibt, nämlich Server Sent Events, es gibt ein neues Interface, Sse und es gibt ein SseEventSink-Interface, mit dessen Hilfe dann der Push vorgenommen wird. Wenn wir uns das anschauen, sieht das auf dem Server so aus, dass wir uns in diesem Beispiel im Constructor die Sse-Instanz initiieren lassen und dann eine Methode haben, in deren Kontext wir uns ein eventSink von Client geben lassen. Dieses eventSink notieren wir intern genauso wie die Sse-Instanz und können beide Komponenten dann im zweiten Teil verwenden. Wir werden dann hier im zweiten Teil ein eventSink nutzen, um eine Nachricht an ein Client zu schicken, und wir können dann mithilfe der Sse-Implementierung neue Events erzeugen, die dann auf dem Client verstanden werden. Auf Ebene des Clients sieht die Nutzung absolut entspannend aus, der Client definiert eine SseEventSource, übergibt die an den Server, indem er sich daran subscribed. Alles andere findet im Hintergrund automatisch statt, und kann dann warten, bis die Nachrichten eintreffen. Mit diesen beiden Komponenten, also der Unterstützung für die Reactive Client API und Server Sent Events haben wir im Kontext der JAX-RS einen gewaltigen Sprung nach Vorne in die Neuzeit gemacht. Beide Dinge können im Kontext unserer Applikationen nun genutzt werden und erlauben es uns, diese Applikation auch zukunftssicher, cloudfähig und ready für die Java EE 9 zu implementieren.

Java EE 8: Ein erster Blick

Lernen Sie die wichtigsten Neuerungen und Verbesserungen der akutellen Java-EE-Spezifikation kennen.

43 min (6 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:13.09.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!