Web Services na SOAP



Podobné dokumenty
Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Úvod do Web Services

RESTful API TAMZ 1. Cvičení 11

Webové služby. Martin Sochor

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

KIV/PIA 2013 Jan Tichava

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Tvorba informačních systémů

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

Artlingua Translation API

Server-side technologie pro webové aplikace

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Michal Krátký, Miroslav Beneš

Formuláře. Aby nám mohli uživatelé něco hezného napsat třeba co si o nás myslí!

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

(Enterprise) JavaBeans. Lekce 7

WCF. IW5 - Programování v.net a C# WCF

Platformy / technologie. Jaroslav Žáček

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Část 1 Moderní JavaScript

SYSTÉM PRO KONFIGURACI KOMUNIKAČNÍCH TERMINÁLŮ A VIZUALIZACI STAVOVÝCH DAT Z KOLEJOVÝCH VOZIDEL

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

Tvorba informačních systémů

Požadavky pro výběrová řízení TerraBus ESB/G2x

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Formuláře. Internetové publikování. Formuláře - příklad

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

INFORMAČNÍ SYSTÉMY NA WEBU

MVVM pro desktop i web

SUTOL Symposium 2014

Příloha č. 2 - Integrace SpiritÚAP do ESB Jihočeského kraje

Systémová administrace portálu Liferay

Popis B2B rozhraní pro elektronickou neschopenku

Pokročilé Webové služby a Caché security. Š. Havlíček

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

Technologie Java. Jaroslav Žáček

Zápasíme s REST API. Lukáš Křečan REST API Architect GoodData

Softwarové komponenty a Internet

PŘEHLED A MOŽNOSTI VYUŽITÍ WEBOVÝCH MAPOVÝCH SLUŽEB

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

X33EJA Enterprise Java

E LEARNINGOVÁ WEBOVÁ APLIKACE PRO VÝUKU BIOMEDICÍNSKÉHO INŽENÝRSTVÍ Petr Huňka

Další vlastnosti Springu Moduly Springu. Spring Framework. Pavel Mička. Pavel Mička Spring Framework 1/18

Architektura aplikace

GWT pro pokročilé. MoroSystems, s.r.o. Pavel Klobása. Senior Java Developer.

Elektronická podpora výuky předmětu Komprese dat

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

Centrální portál knihoven

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Sem vložte zadání Vaší práce.

TÉMATICKÝ OKRUH Softwarové inženýrství

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer

Java/QE Akademie - Osnova

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

2012 ET NETERA a.s. Wicket přehled technologie Martin Strejc

Základní pojmy spojené s webovým publikováním ~ malý slovníček pojmů~ C3231 Základy WWW publikování Radka Svobodová, Stanislav Geidl

Komponentový návrh SW

Vývoj Internetových Aplikací

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Komponentní technologie

4D Mobile! Úvod! Achitektura 4D Mobile!

Referenční rozhraní. Jiří Kosek. Ministerstvo informatiky ČR. ISSS 25. března 2003

Obsah. Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

KIV/PIA Semestrální práce

Platformy / technologie. Jaroslav Žáček

Tvorba informačních systémů

Protokol HTTP 4IZ228 tvorba webových stránek a aplikací

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda

TÉMATICKÝ OKRUH Softwarové inženýrství

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Java Server-side. Štěpán Kuchař. VŠB-TUO FEI Katedra informatiky

Geis Point SOAP WebServices Interface

Tvorba webových stránek

Obchodní podmínky technické podpory programu ESRI Developer Network (EDN)

WINDOWS 8 APLIKACE PRO PREZENTACI DAT Z WEBOVÉHO API

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

RESTful web service v Javě

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

Databáze EMS podacích lístků

<Insert Picture Here> Vývoj portálových řešení v Javě

UJO Framework. revoluční architektura beans. verze

Sem vložte zadání Vaší práce.

Obsah. Předmluva Kapitola 1 Úvod 1. Web v kostce 1 Kdo je webmaster? 4 Doporučená literatura 4. Kapitola 2 Přehled jazyka HTML 5

MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY

Jini (pronounced GEE-nee) Cvičení 8 - DS 2006

Programátorské večery. Tomáš Herceg Microsoft Student Partner

Novinky ve Visual Studio Tomáš Kroupa

Roční periodická zpráva projektu

mbank.cz mtransfer Okamžitá notifikace o mtransferu Dokumentace pro externího partnera

Transkript:

Web Services Používají HTTP Existují dvě varianty: Služby postavené na protokolu SOAP Java standard pro vytváření : JAX-WS RESTfull služby Java standard pro vytváření : JAX-RS

Web Services na SOAP Žádost i odpověď se posílá v XML Definováno SOAP protokolem, uživatelsky obtížně čitelný Služba je popsána souborem WSDL, který definuje všechny publikované metody a jejich parametry a návratové hodnoty Např. v příkladu dostupný na http://localhost:8080/webservices/wsbook?wsdl Referenční implementace v Javě: JAX-WS RI od Oracle

Web Services na SOAP JAX-WS anotace Velmi jednoduché vytvořit stačí několik málo anotací Konfigurace může být obtížnější V plném Java EE (Glassfish) prostředí k dispozici zadarmo Jinak (např. Tomcat) potřeba nakonfigurovat Pro zveřejnění třídy se službami anotace @javax.jws.webservice Metody služeb anotovat @javax.jws.webmethod Jako parametry i návratové hodnoty lze bez problémů používat základní typy (array, List...) a beany s gettery a settery

RESTfull Po HTTP se může posílat XML, HTML, JSON, atp., ale to obsahuje pouze vlastní data Požadavek, co provést a s čím, je obsažen pouze v URL a metodě HTTP: S čím je dané URL, které by mělo jednoznačně reprezentovat nějaký objekt aplikace, např. http://localhost:8080/webservices/jersey/books/16 identifikuje knihu s ID 16 Co provést je dané metodou HTTP. Určitě znáte GET a POST, zde použité pro získání objektu a pro uložení nového objektu. Dále existuje PUT a DELETE, zde pro update objektu a pros smazání objektu. Referenční implementace v Javě: Jersey od Oracle

RESTfull JAX-RS anotace Anotace třídy @javax.ws.rs.path( /cesta ), pak služba poslouchá na cestě /aplikace/cesta Metody se také mohou anotovat @Path( dalsicesta ), pak je tato metoda dostupná na /aplikace/cesta/dalsicesta U metody mohou být v @Path proměnné, např. /cesta/{id}, pak je id dostupné v parametru metody pomocí @PathParam("id") long id U publikované metody musí být jedno z @GET, @POST, @PUT, @DELETE pro výběr, na kterou HTTP akci má metoda reagovat U metody můžou být anotace @Produces a @Consumes podle toho, jaká data přijímají/odesílají v tělě HTTP (typicky vlastní data objektu) @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) Opět můžete přijímat/vracet s beanami, tímto řeknete, jaká serializace je podporována Je třeba ještě beany příslušně anotovat pro externí knihovnu zajišťující patřičnou serializaci (viz příklad) Pokud použijete @Consumes(MediaType.APPLICATION_FORM_URLENCODED), lze číst parametry odeslaného formuláře (HTML form, který posílá parametry URL encoded) pomocí anotace @FormParam("form_param") na parametru metody Můžete také číst parametry v URL (za?, vhodné pro nějaké vedlejší upřesnění požadavku) pomocí anotace @QueryParam("url_param")

RESTfull pomocí Spring MVC RESTfull lze implementovat i ve Spring MVC, které ale nevyužívá standard JAX-RS Anotace s podobnými funkcemi: @RequestMapping(value=..., method=..., consumes=..., produces=...) @ResponseBody @RequestParam, @PathVariable

Klienti Programoví klienti SOAP lze vytvořit např. pomocí NetBeans odkazem na WSDL Z něj se replikuje model a vznikne třída, která služby zprostředkuje RESTfull opět pomocí NetBeans Implementováno Jersey klientem Vznikne třída, která služby zprostředkuje Obsaženo v příkladu Javascript klienti RESTfull služby lze volat z webové stránky Javascriptem prostřednictvím AJAX, jednoduše např. pomocí jquery V příkladu v index.jsp

Příklad na Web Services Na stránkách cvičení wpa-webservices-v2.zip (doplněná verze) Obsahuje serverovou část na SOAPové a RESTfull (různé implementace) služby a klienta na RESTfull Data pro ukázku pouze statická v paměti Springová service BookService pro základní operace, klasicky s interface, přes který je využívána z jednotlivých webových služeb Pro implementaci služeb vizte příklad, dále zmíníme potřebnou konfiguraci

Příklad na Web Services JAX-WS Je třeba zaregistrovat obslužný Servlet s podporou Springu, tedy ve web.xml např.: <servlet> <servlet-name>wsbookservice</servlet-name> <servlet-class>com.sun.xml.ws.transport.http.servlet.wsspringservlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>wsbookservice</servlet-name> <url-pattern>/wsbook</url-pattern> </servlet-mapping> A poté pomocí Springu nakonfigurovat službu (pro bean @Component("wsBookService") @WebService public class WsBookService): <wss:binding url="/wsbook"> <wss:service> <ws:service bean="#wsbookservice"/> </wss:service> </wss:binding>

Příklad na Web Services JAX-RS Je opět třeba zaregistrovat obslužný Servlet s podporou Springu, tedy ve web.xml např.: <servlet> <servlet-name>jersey REST Service</servlet-name> <servlet-class>com.sun.jersey.spi.spring.container.servlet.springservlet</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>cz.cvut.kbss.wpa.webservices.jersey</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>jersey REST Service</servlet-name> <url-pattern>/jersey/*</url-pattern> </servlet-mapping> A poté pomocí Springu nakonfigurovat podporu pro serializaci: <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.json.mappingjacksonhttpmessageconverter"/> <bean class="org.springframework.http.converter.xml.jaxb2rootelementhttpmessageconverter"/> </mvc:message-converters> </mvc:annotation-driven> <bean class="org.springframework.web.servlet.view.contentnegotiatingviewresolver"> <property name="defaultcontenttype" value="application/json"/> <property name="mediatypes"> <map> <entry key="html" value="text/html"/> <entry key="xml" value="application/xml"/> <entry key="json" value="application/json"/> </map> </property> </bean>

Příklad na Web Services Spring REST Je opět třeba zaregistrovat obslužný Servlet, tentokrát se jedná přímo o Springový, ve web.xml tedy např.: <servlet> <servlet-name>spring-rest</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <init-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/context/restcontext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring-rest</servlet-name> <url-pattern>/spring/*</url-pattern> </servlet-mapping>

Příklad na Web Services závislosti Pro RESTfull se Springem Spring MVC org.springframework:spring-web org.springframework:spring-webmvc Pro podporu RESTfull serializace do JSON org.codehaus.jackson:jackson-core-asl org.codehaus.jackson:jackson-mapper-asl Pro Jersey RESTfull com.sun.jersey:jersey-server com.sun.jersey:jersey-servlet com.sun.jersey:jersey-json com.sun.jersey.contribs:jersey-spring Pro JAX-WS s JAX-WS RI com.sun.xml.ws:jaxws-rt org.jvnet.jax-ws-commons.spring:jaxws-spring org.apache.xbean:xbean-spring Pro RESTfull klienta s Jersey com.sun.jersey:jersey-client com.sun.jersey.contribs:jersey-multipart Vše jsou Maven artifacts, pro verze atp. vizte příklad