Java Web Services. Seminarunterlage. Version 4.03 vom

Ähnliche Dokumente
Apache HTTP Server Administration

Einführung in XML. Seminarunterlage. Version 3.05 vom

WSDL. Heutige Vorlesung. Wozu WSDL? Wie wird WSDL verwendet? Language. Services. Description. Web. Abstrakte vs. konkrete Syntax

Wiederholung: Beginn

Friedrich. Kiltz. Java Webservices

PHP Programmierung. Seminarunterlage. Version 1.07 vom

Einführung in die objektorientierte Programmierung

Web-Anwendungen mit JavaServer Faces

Verteilte Systeme: Übung 4

Oracle Cloud Control. Seminarunterlage. Version vom

WSDL. Web Services Description Language. André Vorbach. André Vorbach

Web-Sevices : WSDL Entwicklung von Web-Anwendungen

Objektorientierung in Oracle

Perl Programmierung Grundlagen

Grundlagen der Web-Entwicklung INF3172

JSP und Servlet Programmierung

Web Services. Standards und Realisierung in Java

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

IBM AIX Installation, Backup und Recovery mit NIM

Axis2, CXF und JAX-WS RI im Vergleich

Tomcat Konfiguration und Administration

Zustandsgebundene Webservices

SOA mit.net: Vom Geschäftsprozess zur Lösung

Apache HTTP Server Administration

WildFly Application Server Administration

Unix/Linux Grundlagen für Einsteiger

Auszug aus JAX-WS Folien

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

Java Persistence API mit Hibernate

Seminar E-Services WS 02/03 WSDL. Web Services Description Language. Moritz Kleine SES 02 - WSDL

Web Services Die Definition von Web Services in der Theorie und FNT-Command als Web Service in der Praxis

DTDs und XML- Schemata

WebServices Zwischen Buzzword und Nutzen

PHP Programmierung. Seminarunterlage. Version 1.02 vom

XML und SOAP Einführung und Grundlagen

FRANZIS PROFESSIONAL SERIES. Herbert Burbiel. SOA & Webservices. ~ in der Praxis. 197 Abbildungen

Web Services Integration heterogener Systemlandschaften. Prof. Dr. Gregor Engels Fabian Christ 08. Juni 2010

Solaris Virtualisierung mit ZFS und Container (Zonen)

Wissenschaftliche Vertiefung Web Services. Esslingen, 22. Januar 2016 Simon Schneider

Implementierung von Web Services: Teil I: Einleitung / SOAP

Java Performance Tuning

Oracle Backup und Recovery mit RMAN

Agenda. Web Services unter Lotus Notes/Domino

5. Übung zur Vorlesung Service-orientierte Architekturen

PostgreSQL Administration

Web Service Entwicklung mit Java. Sven Lindow

Übersicht. Angewandte Informatik 2 - Tutorium 6. Teile einer WSDL-Datei. Was ist WSDL. Besprechung: Übungsblatt 5

Java GUI Entwicklung mit Swing

Big Data Informationen neu gelebt

Java und XML 2. Java und XML

WebSphere Application Server Installation

Architektur von SOAP basierten Web Services

IBM DB2 UNIX/Linux/Windows Backup und Hochverfügbarkeit mit HADR

Continuous Integration (CI) Workshop

SOAP. SOAP: Envelope

Web-Services Grundlagen

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010

Axis2, CXF und JAX-WS RI im Vergleich

Webservices Ein Vortrag von:

5. Web-Services. Kommunikation zwischen Client und Server über XML-Format SOAP

Hauptseminar Internetdienste Prof. F. Schweiggert Sommersemester 2004 Universität Ulm. Web Services. Boto Bako

MySQL Administration. Seminarunterlage. Version 3.02 vom

Erläuterungen zu Darstellung des DLQ-Datenportals

Linux Hochverfügbarkeits-Cluster

WebService mit MTOM an der AG-Schnittstelle des GKV-Kommunikationsserver

Software Reuse Sommer 2004

Linux Cluster mit Pacemaker und Heartbeat 3

Werner Motzet und Tim Pistor präsentieren:

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER

Oracle PL/SQL für Experten - Performance Analyse und Laufzeitoptimierung

IBM Informix Dynamic Server Hochverfügbarkeits-Technologien unter Unix

Web Services. Eine kleine Einführung. Werner Gaulke

XML-Webservices & SOAP

WebService in Java SE und EE

Transkript:

Seminarunterlage Version: 4.03 Version 4.03 vom 2. Januar 2017

Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen oder eingetragene Warenzeichen der jeweiligen Firmen und beziehen sich auf Eintragungen in den USA oder USA-Warenzeichen. Weitere Logos und Produkt- oder Handelsnamen sind eingetragene Warenzeichen oder Warenzeichen der jeweiligen Unternehmen. Kein Teil dieser Dokumentation darf ohne vorherige schriftliche Genehmigung der weitergegeben oder benutzt werden. Die besitzt folgende Geschäftsstellen Adressen der Karl-Schurz-Str. 19a D-33100 Paderborn Tel.: (+49) 0 52 51 / 10 63-0 An der alten Ziegelei 5 D-48157 Münster Tel.: (+49) 02 51 / 9 24 35 00 Welser Straße 9 D-86368 Gersthofen Tel.: (+49) 08 21 / 507 492 0 Kreuzberger Ring 13 D-65205 Wiesbaden Tel.: (+49) 06 11 / 7 78 40 00 Wikingerstraße 18-20 D-51107 Köln Tel.: (+49) 02 21 / 8 70 61 0 Internet: http://www.ordix.de Email: seminare@ordix.de Seite 2 Version: 4.03

Inhaltsverzeichnis 1 Grundlagen... 8 1.1 AGENDA... 9 1.2 Alter Wein in neuen Schläuchen?... 10 1.3 Die Entstehung von Webservices... 11 1.4 Klassische C/S Anwendungen vs. Webservices... 12 1.5 Web-Anwendungen vs. Webservices... 13 1.6 Probleme ohne Webservices... 14 1.7 Was sind Webservices?... 15 1.8 Merken... 16 1.9 Fazit Warum Webservices?... 17 1.10 SOA (Service Oriented Architectur)... 18 1.11 Was ist ein Dienst?... 19 1.12 WS-I Basic-Profile... 20 1.13 Technologische Aspekte... 21 1.14 Metro Java Webservice Stack... 22 1.15 JDK vs. Metro... 23 2 XML Dokumente... 24 2.1 HTML... 25 2.2 Warum reicht HTML nicht aus?... 26 2.3 XML... 27 2.4 Auszeichnungssprachen... 28 2.5 HTML vs. Generische Auszeichnungssprachen... 29 2.6 SGML... 30 2.6.1 Anwendungen von SGML... 31 2.6.2 Warum XML und nicht HTML/SGML?... 32 2.7 Was bedeutet Erweiterbarkeit?... 33 2.8 Anwendungsspezifische Standards... 34 2.9 Was ist ein XML-Dokument?... 35 2.10 Grundbausteine von XML... 36 2.11 XML-Elemente... 37 2.12 Inhalt von XML-Elementen... 38 2.12.1 Unstrukturierter Inhalt... 39 2.12.1.1 PCDATA... 40 2.12.1.2 CDATA... 41 2.12.2 Strukturierter Inhalt... 42 2.12.3 Gemischter Inhalt... 43 2.12.4 Leerer Inhalt... 44 2.12.4.1 Warum leere Elemente?... 45 2.13 XML-Attribute... 46 2.13.1 Attribut statt Element... 47 2.13.2 Element statt Attribut... 48 2.13.3 Attribut oder Element verwenden... 49 2.13.4 Reservierte Attribute... 50 2.14 XML-Deklaration... 51 2.14.1 XML-Deklaration: Zeichenkodierung... 52 2.15 Wohlgeformte XML-Dokumente... 53 2.16 Namenskonventionen... 54 2.16.1 Namensräume Namenskonflikte... 55 2.16.2 Auflösung durch Präfixe... 56 2.16.3 Namensräume Allgemein... 57 2.16.4 Namensräume in XML... 58 2.16.5 Standard Namensraum... 59 2.16.6 Beispiel: Namensräume... 60 2.16.7 Beispiel: Überschreibung vom Standard Namensraum... 61 2.16.8 Standard-Namensräume: Gültigkeit... 62 3 W3C-Schema... 63 Version: 4.03 Seite 3

3.1 Vorteile von W3C-Schemata... 64 3.2 Die Beispiel-DTD... 65 3.3 Äquivalentes W3C-Schema... 66 3.4 Allgemeines über W3C-Schema... 67 3.5 W3C-Schema, Wurzel Element... 68 3.6 Ziel-Namensraum... 69 3.7 Instanz eines Schemas... 70 3.8 Beispiel: XML-Dokument... 71 3.9 Beispiel: Standard Namensraum... 72 3.10 Beispiel: schemalocation... 73 3.11 Beispiel: W3C-Schema und XML-Dokument... 74 3.12 Schema, Element mit Strukturierten Inhalt... 75 3.13 Schema, Benannte Datentypen... 76 3.14 Schema, Anonyme Datentypen... 77 3.15 Dokument-Typen und Datentypen... 78 3.16 Mit Datentypen ist es einfacher... 79 3.17 Schema Datentypen, Deklaration vs. Definition... 80 3.18 Verschiedene Arten von Schema Datentypen... 81 3.19 Einfache vs. komplexe Datentypen... 82 3.20 Anonyme vs. benannte Datentypen... 83 3.21 Globale vs. lokale Deklarationen von Datentypen... 84 4 SOAP 1.2 Webservice s... 85 4.1 Was ist SOAP?... 86 4.2 Wozu SOAP?... 87 4.3 SOAP-Nachricht?... 88 4.4 Beispiel: SOAP Nachricht... 89 4.5 SOAP Versionen... 90 4.6 SOAP Version und Envelope-Namensraum... 91 4.7 Fazit - SOAP Nachricht... 92 4.8 SOAP Nachricht (SOAP v.1.1)... 93 4.9 SOAP Nachricht (SOAP v 1.2)... 94 4.10 Nachrichteninhalt (Body)... 95 4.11 Briefkopf (Header)... 96 4.12 Beispiel: SOAP Nachricht mit Header und Body... 97 4.13 Erweiterung von SOAP-Nachrichten... 98 4.14 Hypothetisches Beispiel... 99 4.15 SOAP 1.2 Encoding...100 4.15.1 SOAP 1.2 Literal Encoding... 100 4.15.2 Literal Encoding im Schema, RPC und Document... 101 4.15.3 SOAP-Nachricht mit RPC Style... 102 4.15.4 SOAP-Nachricht, RPC-Ergebnis (1/2)... 103 4.15.5 Beispiel: SOAP-Nachricht mit Style rpc/literal... 104 4.15.6 Beispiel: SOAP-Nachricht mit Style rpc/encoded... 105 4.15.7 SOAP-Nachricht mit Style document/literal... 106 4.15.8 Beispiel: SOAP-Nachricht mit Style document/literal... 107 4.15.9 Beispiel: SOAP-Nachricht mit Style document/encoded... 108 4.15.10 Beispiel: SOAP-Nachricht mit Style document/literal wrapped... 109 4.15.11 SOAP Encoding SOAP Arrays... 110 4.15.12 Beispiel: Kodierung von Fehlermeldungen... 111 4.15.13 Elemente des SOAP 1.2 Fault Blocks... 112 4.16 Verarbeitung von SOAP-Nachrichten...113 4.16.1 SOAP Processing Model (Nachrichtenverarbeitung)... 113 4.16.2 Arten von SOAP-Knoten... 114 4.16.3 Roles, Identifizierung von SOAP-Knoten... 115 4.16.4 SOAP-Knoten und Header-Blöcke... 116 4.16.5 Role, Attribut-Werte... 117 4.16.6 mustunderstand, Attribut-Werte... 118 4.16.7 Zuständigkeiten vom Empfänger... 119 4.16.8 Zuständigkeiten von Zwischenknoten... 120 Seite 4 Version: 4.03

4.16.9 Zuständigkeiten vom Endknoten... 121 4.16.10 Beispiel: Header-Blöcke... 122 4.16.11 Wozu Festlegung der Zuständigkeiten?... 123 4.17 Übertragung von SOAP-Nachrichten...124 4.17.1 Protokoll-Bindung (Binding)... 124 4.17.2 Anforderungen an Protokoll-Bindung... 125 4.17.3 WS-I BP 1.1 - Standardisierte Protokolle... 126 4.17.4 Beispiel: SOAP 1.2 über HTTP-POST (Anfrage)... 127 4.17.5 Beispiel: SOAP über HTTP-POST (Antwort)... 128 4.17.6 Beispiel: SOAP 1.2 über HTTP-GET... 129 4.18 Vor- und Nachteile von SOAP...130 4.18.1 SOAP Vorteile... 130 4.18.2 SOAP Nachteile... 131 5 WSDL...132 5.1 Webservices und WSDL...133 5.2 WSDL?...134 5.3 Wozu dient WSDL?...135 5.4 WSDL Versionen...136 5.5 WSDL 1.1 Elemente...137 5.6 Fazit WSDL 1.1 Aufbau...138 5.7 Abstrakte Schnittstellen und Binding...139 5.8 WSDL 1.1, WS-I BP 1.1 Namensräume...140 5.9 Beispiel: GoogleSearch.wsdl...141 5.10 WSDL 1.1, Prinzipieller Aufbau - <definitions>...143 5.11 WSDL 1.1, Prinzipieller Aufbau - <types>...144 5.12 Beispiel...145 5.13 Beispiel: Import der XSD...146 5.14 WSDL 1.1, Prinzipieller Aufbau - <message>...147 5.15 WSDL 1.1, Prinzipieller Aufbau - <part>...148 5.16 Modellierung von part-elemente in Nachrichten...149 5.17 WSDL 1.1, Prinzipieller Aufbau - <porttype>...150 5.18 WSDL 1.1, Prinzipieller Aufbau operation...151 5.19 WSDL 1.1, Prinzipieller Aufbau <input>, <output>...152 5.20 Interaktionsmuster - Message Exchange Pattern...153 5.21 Fehlermeldungen - Message Exchange Pattern...154 5.22 WSDL 1.1, Prinzipieller Aufbau Datentyp, Nachrichten, Porttypes...155 5.23 WSDL 1.1, Prinzipieller Aufbau - <binding>...156 5.24 Binding Struktur ohne konkretes Protokoll...157 5.25 Binding - Erweiterungselemente, soap:binding...158 5.26 soap:operation...159 5.27 soap:header...160 5.28 soap:body...161 5.29 soap:body encoded...162 5.30 WSDL 1.1, Prinzipieller Aufbau - <service>...163 5.31 Service...164 5.32 WSDL 1.1 vs. WSDL 2.0...165 5.33 Vorteile von WSDL...166 5.34 Nachteile von WSDL...167 6 JAX-WS...168 6.1 Webservices Frameworks...169 6.2 Webservices Frameworks...170 6.3 JAX-WS?...171 6.4 JAX-WS Allgemein Entwicklung von Webservices...172 6.5 JAX-WS Allgemein Realisierungsstrategien...173 6.6 Realisierungsstrategie - Bottom / Up...174 6.7 Realisierungsstrategie - Bottom / Up...175 6.8 JAX-WS Runtime in JRE 6...176 6.9 JAX-WS Runtime in Tomcat 6...177 Version: 4.03 Seite 5

6.10 Beispiel: sun-jaxws.xml...178 6.11 sun-jaxws.xml, Weitere Endpoint-Attribute...179 6.12 Beispiel: web.xml...180 6.13 Realisierungsstrategie Top / Down...181 6.14 Realisierungsstrategie Top / Down...182 6.15 JAX-WS Allgemein Client...184 6.16 JAX-WS Clients Entwickeln...185 6.17 Beispiel: JAX-WS Client (Synchron)...186 6.18 JAX-WS Oneway Methoden...187 6.19 JAX-WS, Asynchrone Clients...188 6.20 Beispiel: JAX-WS Client (Asynchron mit globalem Binding)...189 6.21 Beispiel: JAX-WS Client (Asynchron mit spezifischem Binding)...190 6.22 JAX-WS Annotationen...191 6.22.1 JAX-WS Annotations... 191 6.22.2 @Webservice... 192 6.22.3 @SOAPBinding... 193 6.22.4 Beispiel: @WebService, @SOAPBinding... 194 6.22.5 @WebMethod... 195 6.22.6 Beispiel: @WebMethod... 196 6.22.7 @WebParam... 197 6.22.8 Beispiel: @WebParam... 198 6.22.9 @WebResult... 199 6.22.10 Beispiel: @WebResult... 200 6.22.11 @WebFault... 201 6.22.12 Beispiel: @WebFault (1/3)... 203 6.22.13 Beispiel: @WebFault (2/3)... 204 6.22.14 Beispiel: @WebFault (3/3)... 205 6.22.15 @M TOM... 206 6.22.16 Beispiel: @MTOM... 207 6.23 Handler...208 6.23.1 Was sind Handler?... 208 6.23.2 JAX-WS Handler... 209 6.23.3 JAX-WS Handler programmieren... 210 6.23.4 Beispiel: Logischer Handler... 211 6.23.5 Beispiel: SOAP Handler... 212 6.23.6 JAX-WS Handler im POJO aktivieren... 213 6.23.7 Zusammenfassung - JAX-WS Webservice Provider/Consumer... 214 7 JAX-RS / Re st...216 7.1 Realisierungsstrategien JAX-RS...217 7.2 Webservice mit JAX-RS...218 7.3 Beispiel...219 7.4 Projektstruktur...220 7.5 Konfiguration JAX-RS Servlet...221 7.6 Beispiel: REST Service...222 7.7 WADL...223 7.8 REST Service Client...224 7.9 JAX-RS Annotationen...225 7.10 Template Parameter...226 7.11 Template-Parameter @Path("{Template}")...227 7.12 Template Parameters @Path("{Template :.+}")...228 7.13 @Path : Sub-resource locator...229 7.14 Beispiel...230 7.15 REST - CRUD Operationen...231 7.16 Beispiel...232 7.17 Request Parameter...233 7.18 @QueryParam...234 7.19 @FormParam...235 7.20 @HeaderParam...236 7.21 Context Parameter...237 Seite 6 Version: 4.03

7.22 @Context / UriInfo...238 7.23 @Context / HttpHeaders...239 7.24 MIME Typ mit @Consumes, @Produces MediaType...240 7.25 Response...241 7.26 Builder...242 7.27 ResponseBuilder...243 7.28 Beispiel...244 7.29 Jersey Client API Basics...246 7.30 XML JSON...247 7.31 POJO JSON support web.xml...248 7.32 Server...249 7.33 Client...250 Version: 4.03 Seite 7