Enterprise-IT-Praktikum JAX-RS-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Konzepte objektorientierter Systeme
JPQL Java Persistence Query Language
Kritische Betrachtung
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Konstruktoren.
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
XDoclet ETIS SS05.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Programmieren mit JAVA
Programmieren mit JAVA
Vererbung Spezialisierung von Klassen in JAVA möglich durch
Seminar Web-Engineering Nina Aschenbrenner / Ruben Jubeh 1 FG Software Engineering Software Engineering Seminar Web Engineering Seminar des Fachgebiet.
Seminar Internet Technologien
Software Design Patterns Extreme Programming (XP).
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
05 - Reflection Das Reflection API Reflection2 Ziel Es kommt vor, dass eine Methode ein Objekt als Parameter übergeben bekommt, ohne dass bekannt.
Einführung in die Programmierung Datensammlung
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
© 2004 Pohlig - Taulien Dokumentation mit JavaDoc.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Einführung Servlets/JSPs
Das Web als Präsentations- / Kommunikationsschicht
Wir bauen uns eine Webapplikation!
Informatik 1 Übung 8. NACHBESPRECHUNG Übung 8 Rekursion Existiert Weg von A nach B?
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
OpenStack Jörn Esdohr | Oktober 2012, Dortmund.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
UNIVERSITÄT ZU KÖLN HISTORISCH-KULTURWISSENSCHAFTLICHE INFORMATIONSVERARBEITUNG REUSABLE - CONTENT SS 2013 MARIA WAGNER ReST.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 2013 Kapitel 6 Folie 2 WCF Data Services (1) s.a.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
1.3 Klassen und Beziehungen
Projekt Systemintegration Datler, Kroiß, Sachs Systemintegration ILV, FL / MIC- 2 (SS2014)
Informatik Zustandsorientiertes Modellieren und Programmieren 2.4 Datenkapselung 2.4 Datenkapselung Objekte können miteinander kommunizieren, indem.
2. Zustandsorientiertes Modellieren 2.4 Datenkapselung
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Reinhold Rumberger Web Services.
SharePoint 2013 Web Services
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
© Zühlke 2013 Romano Roth Workshop 6 (ws6C) native Entwicklung für mobile Geräte Lektion 2: Service 18. February 2013 Folie 1 von 19.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Resource Oriented Computing ROC Gniesser Paul Mausz Manuel Scherz Thomas Crillovich Matthias.
Enterprise-IT-Praktikum Einheitliche GUIs Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk.
Enterprise-IT-Praktikum Hibernate-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk.
Dennis Boldt David Gregorczyk
Cloud Entwicklung: Web Services
Webbasierte Kommunikation am Beispiel REST Seminarvortrag von Heiko Overath.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
© WZL/Fraunhofer IPT Eine Gegenüberstellung von Websockets und RESTful Web Services Seminarvortrag von Lucie Mades.
Vergleich verschiedener Kommunikationsinfrastrukturen in Enterprise Information Systems Ben Mainz Seminar am Lehrstuhl für Software Engineering RWTH Aachen.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
Schnittstellen für Verteilte System mit J2EE Frank Schwichtenberg SourceTalk 2008 Göttingen,
Es gibt Klassen, die mit der Entwicklungsumgebung ausgeliefert werden
Grundkurs Informatik 11-13
 Präsentation transkript:

Enterprise-IT-Praktikum JAX-RS-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk

Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – JAX-RS-Einführung2 Wer kennt es nicht – ROA ROA steht für Resource-oriented Architecture  Counterpart: Service-oriented Architecture (SOA) Roy Fielding: Representational State Transfer (ReST) Konzept: über Hyperlinks (URIs) werden Ressourcen bereitgestellt und/oder miteinander verknüpft –Adressierbarkeit –Unterschiedliche Repräsentationen –Zustandslosigkeit –Wohldefinierte Zugriffsoperationen –Hypermedia Wie komisch, passt ja perfekt zu HTTP…

Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – JAX-RS-Einführung3 Gibt’s da auch was von Ratiopharm? Nein, aber von Java: JSR-311  Java API for RESTful Web Services (JAX-RS) Reference Implementation „Jersey“ Subprojekt vom GlassFish-Application-Server Unterstützt die Konstruktion von REST-konformen Schnittstellen mit Hilfe von Java-Annotationen JAX-RS 1.1 fertiggestellt Version 2.0 ist im Bearbeitungsstatus

Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – JAX-RS-Einführung4 Vorgehen Server-Seite Klassen mit Funktionalität programmieren Annotationen einfügen Web-Server-Deployment durchführen Client-Seite Testen z.B. mit curl auf Kommandozeile: curl –HAccept:application/json Browser-Plugin: XHR-Poster Jersey-Client-API

Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – JAX-RS-Einführung5 Server-Seite: Klassen programmieren public class HelloResource // Name beliebig { public String sayProst() // Name beliebig { return "Prost"; }

Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – JAX-RS-Einführung6 Server-Seite: Annotationen public class HelloResource //Name public String sayProst() //Name beliebig { return "Prost"; }

Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – JAX-RS-Einführung7 Deployment: Servlet-Container mit Tomcat ServletAdaptor com.sun.jersey.spi.container.servlet.ServletContainer 1 ServletAdaptor /rest/* 30

Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – JAX-RS-Einführung8 Deployment: Java NIO mit Grizzly URI baseUri = UriBuilder.fromUri(" ResourceConfig rc = new PackagesResourceConfig("pkg.to.resources"); HttpServer srv = GrizzlyServerFactory.createHttpServer(baseUri, rc); System.in.read(); srv.stop(); Quelle: Jersey Documentation guide.html#d4e54

Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – JAX-RS-Einführung9 Da geht noch was… Ein- und Ausgabeparameter Sub-resources-Konzept für strukturierten Ressourcen- Zugriff Automatisches Marshalling/Unmarshalling von Java- Objekten zu XML/JSON  sehr elegant z.B. mit JAXB

Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – JAX-RS-Einführung10 Ein- und public class @Produces(MediaType.APPLICATION_JSON) public String createUser(String userData) @Produces(MediaType.APPLICATION_JSON) public String String userId) {... }

Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – JAX-RS-Einführung11 Das public class RestResource public String userSubresource(String userData) { return new UserResource(); } public class UserResource {... } Sub-sub-Resources, Sub-sub-sub-Resources usw. möglich Sub-Resources erhalten KEINE Kontextinformationen

Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – JAX-RS-Einführung12 Automatisches Marshalling/Unmarshalling (1/2) Ein-/Ausgabe-Parameter standardmäßig Strings… Automatische Transformation wünschenswert JAXB XML-zu-Java-Objekt-Mapping-Spezifikation, JSR Kann in Zusammenhang mit Jersey eingesetzt werden Sowohl für XML als auch für JSON Statt Strings werden in den Resource-Definitionen die JAXB-Beans angegeben Vorteil mit Hibernate: gemeinsame Klassen für Persistenz und Serialisierung möglich

Institut für Telematik | Enterprise-IT-Praktikum Enterprise-IT-Praktikum – JAX-RS-Einführung13 Automatisches Marshalling/Unmarshalling (2/2) // public class User { private String userName; private String password; } // JAX-RS-Ressource – Parameter und Rückgabe sind public class @Produces(MediaType.APPLICATION_JSON) public User createUser(User userData) {... }