JAX-RS 2.0 REST mit Java EE 7



Ähnliche Dokumente
RESTful Services mit Java EE

Enterprise Java, Services und Systemintegration MVC (JSR 371) Actionbasierte Web-Anwendungen mit Java EE. Vorstellung

Enterprise Java, Services und Systemintegration. Zu neuen Ufern. Jakarta EE & MicroProfile. Vorstellung

Auszug aus JAX-WS Folien

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen. Sommersemester Michael Theis, Lehrbeauftragter 1

Asynchrone Anwendungen mit CompletableFuture

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen

WebService in Java SE und EE

Übungsaufgabe Transaktion als Middleware

Struts 2 Das Imperium schlägt zurück?

Axis2, CXF und JAX-WS RI im Vergleich

Seminararbeit. Konzept einer Schnittstelle zur Benutzerverwaltung in RiskShield-Server. Christoph Laufs INFORM GmbH INFORM GmbH 1

Struts 2 Das Imperium schlägt zurück?

Schritt 4: Hallo Enterprise Bean

Enterprise JavaBeans Überblick

Next generation open source BPM JBoss jbpm 4. Java Forum Stuttgart

Axis2, CXF und JAX-WS RI im Vergleich

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Dennis Schulte / Tobias Flohre codecentric AG. Enterprise Java Batch mit Spring

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

Deep Dive in WebLogic Server und Multi- Tenancy

Inhaltsverzeichnis. Bernd Müller, Harald Wehr. Java Persistence API 2. Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN:

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

EJB 3.0 alles wird einfacher. Stephan Metzler, eurolink SWITZERLAND

Stand der Entwicklung von Shibboleth 2

Freundliche Eindringlinge. Moderne Web- Applika1onen mit CDI

Wie ich lernte die API zu lieben. 19. März sic[!]sec GmbH Industriestraße Gröbenzell

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

Java Persistence API. Phillip Ghadir Oliver Tigges

Enterprise Java Beans

Enterprise JavaBeans Überblick

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Zwischenbericht Großer Beleg

Enterprise JavaBeans Überblick: 8. Test-Driven Development. 8.1 Einleitung 8.2 Beispiel 8.3 Anwendung mit Eclipse und dem JBoss Application Server

Aktuelle Technologien zur Entwicklung verteilter Anwendungen RESTful Web Services mit JAX-RS

Java EE Java EE Multitiered Applications

Themen. Web Service - Clients. Kommunikation zw. Web Services

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

J2EE-Praktikum. Enterprise JavaBeans Patterns. Peter Thiemann. J2EE-Praktikum, WS2005/2006. Universität Freiburg

Angewandte Softwareentwicklung Serialisierung

Komponentenorientierte Software-Entwicklung. Seite 1 / 44

J2EEKurs. Enterprise JavaBeans Einführung. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, Universität Freiburg, Germany

Enterprise JavaBeans Überblick

Softwareentwicklung mit Enterprise JAVA Beans

5. Übung zu Software Engineering

RESTful Web-Services mit JAX-RS

Enterprise JavaBeans Überblick: 12. Session Facade Einleitung 12.2 Problem 12.3 Lösung. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 460

Realtime Anbindung an SAP ERP

Contexts and Dependency Injection. W3L AG

Behandelt Java EE 6. O Reillys Taschenbibliothek. Java EE. kurz & gut. Arun Gupta O REILLY. Übersetzung von Thomas Demmig

Evgenia Rosa ORACLE Deutschland GmbH BU Application Server

Mit Java von der Datenbank in den Browser Thomas Bröll Principal Consultant Trivadis GmbH, Stuttgart

Behandelt Java EE 6. O Reillys Taschenbibliothek. Java EE. kurz & gut. Arun Gupta O REILLY. Übersetzung von Thomas Demmig

NoSQL User Group Cologne

SAP NetWeaver Gateway. 2013

Operation am offenen Herzen

Integration von UIS-Webdiensten

Softwareentwicklung in verteilten Umgebungen, Teil 12 Enterprise Middleware. Dieter Schmalstieg. Dieter Schmalstieg SVU Enterprise Middleware

Mobile und Verteilte Datenbanken

Enterprise JavaBeans (mit JBoss)

ASP.NET Web-API - Grundlagen

Model-Driven Development in der Praxis. mit objectif. Herzlich willkommen

JUnit 5 Die Plattform. Johannes Link

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen. Sommersemester Michael Theis, Lehrbeauftragter 1

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen. Sommersemester Michael Theis, Lehrbeauftragter 1

A Java EE component is a self-contained functional software unit that is assembled into a Java EE. communicates with other components.

Auszug aus Axis2 Schulung

ebusiness Übung 3a Spezifikation und Nutzung von Web-APIs (Services) Prof. Dr. Andreas Schmietendorf 1

ODS 6.0 Schnittstelle

Mobile und Verteilte Datenbanken

Programmierung von Client/Server- Anwendungen

Web-Services Implementierung mit Java

Praktikum aus Softwareentwicklung 2, Stunde 11

Enterprise Java Beans Einführung

Service Engineering. Übung 2a Spezifikation und Nutzung von Web-APIs (Services) Prof. Dr. Andreas Schmietendorf 1

Eclipse Smart Client Beyond Eclipse RCP. Christian Campo, compeople, 24.April 2007

<Insert Picture Here> BI Publisher Berichte in eigene Anwendungen integrieren

Dirk von der Weiden, Olaf Meyer C1 SetCon. REST in the Enterprise

Enterprise Java, Services und Systemintegration. Java EE Quo Vadis? Vorstellung. Software-Architekt, Entwickler und Trainer Fachliche Schwerpunkte

Java Persistence API mit Hibernate

VAADIN, SPRING BOOT & REST

Hibernate Portfolio Neuerungen in Hibernate ORM Hibernate Search Hibernate

Warum EJB Technologie (1)?

Projekt Entwicklung verteilter Softwaresysteme mit Web Services SoSe Java API for XML Web Service (JAX-WS) April 2008

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG

Die Alternative zum Web-Form Modell

Webinar: Einführung in ICEfaces

16 Migration von EJB 2.x nach 3.0

Spring Dynamic Modules for OSGi Service Platforms

Persistenz. Ralf Gitzel

Fallstricke bei der Entwicklung einer JEE6 Anwendung

Ein Leben ohne Notes Client Sven Hasselbach

Transkript:

Enterprise Java, Web Services und XML JAX-RS 2.0 REST mit Java EE 7 Java User Group Darmstadt 13. Juni 2013 http://www.frotscher.com thilo@frotscher.com Vorstellung Freiberuflicher Softwarearchitekt und Trainer Fachliche Schwerpunkte Java Plattform Services und Integration Kundenspezifische Inhouse-Schulungen (Co-)Autor von 2 Büchern & zahlreichen Artikeln Sprecher auf internationalen Konferenzen 2013 Thilo Frotscher 2 1

JAX-RS 2.0 (JSR-339) Referenzimplementierung: Jersey 2.0 Aktueller Stand: 2.0 Final Release (14.Mai 2013) Bestandteil von Java EE 7 (JSR-342) Final Release am 28.05.2013 Glassfish 4.0: Java EE 7 RI http://glassfish.java.net/ Glassfish 4.0.1 in Kürze zu erwarten 2013 Thilo Frotscher 3 Java EE Roadmap 2013 Thilo Frotscher 4 2

Neuigkeiten in JAX-RS 2.0 Client-API Filter Entity Interceptors Support für Asynchronität (Server & Client) Validation Features (Hypermedia) 2013 Thilo Frotscher 5 Provider Erweiterungen für JAX-RS (1) Marshalling und Unmarshalling Umwandlung von Exceptions in Responses Bereitstellen von Kontextinformationen für Ressourcen oder für andere Provider Entity Interceptors Interceptors für Marshalling / Unmarshalling Filter Pre-/Post-Processing auf HTTP-Ebene 2013 Thilo Frotscher 6 3

Features Erweiterungen für JAX-RS (2) Kapselung mehrerer zusammen gehöriger Erweiterungen Vorsicht, verwirrend! Provider, Interceptors und Filter werden alle mit @Provider markiert Alternativ: manuelle Registrierung via API 2013 Thilo Frotscher 7 Processing Pipeline (Server) 2013 Thilo Frotscher 8 4

Processing Pipeline (Client) 2013 Thilo Frotscher 9 Filter JAX-RS definiert vier Interfaces für Filter Anordnung in Ketten Filter können Kette unterbrechen (abortwith) z.b. fehlgeschlagener Authorisierungsfilter Sortierung auf Basis von Priorities Vergleichbar mit Servlet Filter / SOAP Handler Einsatzgebiete: Protokoll-spezifische Erweiterungen Security, Caching, HTTP Method Rewrite etc. 2013 Thilo Frotscher 10 5

Filter (2) public interface ClientRequestFilter { void filter(clientrequestcontext requestcontext) throws IOException; public interface ClientResponseFilter { void filter(clientrequestcontext requestcontext, ClientResponseContext responsecontext) throws IOException; public interface ContainerRequestFilter { void filter(containerrequestcontext requestcontext) throws IOException; public interface ContainerResponseFilter { void filter(containerrequestcontext requestcontext, ContainerResponseContext responsecontext) throws IOException; 2013 Thilo Frotscher 11 Entity Interceptors Filter wirken vor Marshalling/Unmarshalling der Entities im Input/Outstreams keine Manipulation der Entities möglich Interceptors kapseln dagegen MBR/MBW direkter Zugang auf Entity-Streams Können ebenfalls verkettet werden JAX-RS definiert 2 Interfaces Einsatzgebiete: GZIP, Verschlüsselung, spez. Repräsentationen etc. 2013 Thilo Frotscher 12 6

Entity Interceptors (2) public interface ReaderInterceptor { Object aroundreadfrom(readerinterceptorcontext context) throws java.io.ioexception, javax.ws.rs.webapplicationexception; public interface WriterInterceptor { void aroundwriteto(writerinterceptorcontext context) throws java.io.ioexception, javax.ws.rs.webapplicationexception; 2013 Thilo Frotscher 13 Asynchronität @Path("/longRunningCalculation") public class MyResource { @GET public void longrunningcalc(@suspended final AsyncResponse ar) { Executors.newSingleThreadExecutor().submit( new Runnable() { public void run() { ComplexCalcResult calcresult = executelongrunningcalc(); ar.resume(calcresult); ); // Return immediately and handle other requests Bsp 1: Ressource mit asynchroner Request-Verarbeitung 2013 Thilo Frotscher 14 7

Asynchronität (2) @Stateless @Path("/longRunningCalculation") public class MyResource { @GET @Asynchronous public void longrunningcalc(@suspended final AsyncResponse ar) { ComplexCalcResult calcresult = executelongrunningcalc (); ar.resume(calcresult); Bsp 2: Ressource mit asynchroner Request-Verarbeitung (Session Bean) 2013 Thilo Frotscher 15 Asynchronität (3) InvocationCallback<List<Order>> callback = ; new InvocationCallback<List<Order>>() { @Override public void completed(list<order> orders) {... @Override public void failed(throwable t) {... client.target("http://.../orders/").request("text/xml").async().get(callback); Bsp 3: Nicht-blockierender Request (Client) 2013 Thilo Frotscher 16 8

Features Sonstige Neuigkeiten Kapseln mehrere Erweiterungen Validation Integration mit Bean Validation Constraint Annotations in Ressourcen Prüfung von Beans und Methodenparametern Prüfung von Rückgabewerten Hypermedia begrenzter Support für Transitional Links (in Headers) Kein Support für Structural Links 2013 Thilo Frotscher 17 Zusammenfassung JAX-RS 2.0 bietet zahlreiche interessante Erweiterungen und Neuigkeiten Standardisierte Client-API Filter und Interceptors Asynchrone Verarbeitung Validation Verfügbar separat (Jersey 2.0 in Maven Central) oder mit der Java EE 7-Referenzimplementierung 2013 Thilo Frotscher 18 9

Thilo Frotscher Kundenspezifisches Training und Beratung zu Java EE, Services und Integration thilo@frotscher.com 2013 Thilo Frotscher 19 10