Uživatelská náročnost
Pro koho je kurz určen
Kurz je určen pro vývojáře Java SE a Java EE, kteří potřebují řešit
komunikaci více aplikací, ať už pomocí SOAP nebo integrují javový back-end a
klientský AJAX či androidovou aplikaci pomocí RESTful web services (XML nebo
JSON)
Co vás naučíme
- SOAP, WSDL a WS-I Profile s důrazem na interoperabilitu (Java, .NET, PHP)
- REST, XML a JSON pro AJAX a Android
- Mapování mezi objekty a XML s použitím JAXB včetně pokročilých technik
- Použití JAX-WS Metro/CXF pro jednoduchou i složitou komunikaci přes SOAP
- Provádění a poskytování jednosměrných a dlouho trvajících operací ve stylu
Comet, efektivně
- RESTful web services s použitím Spring MVC a JAX-RS
- Přijímat a odesílat JSON i XML
Požadované vstupní znalosti
Je nutné znát webové programování v Javě (servlety) a XML. Spring Framework a
předchozí znalosti webových služeb jsou velkou výhodou.
Metody výuky
Odborný výklad s praktickými ukázkami, cvičení na počítačích
Studijní materiály
Tištěné prezentace probírané látky
Osnova kurzu
XML, XSD, JSON
- XML a jmenné prostory
- XML Schema (XSD), validace
- Sestavení XSD z existujícího souboru XML
- XML Fast Infoset
- MTOM
- JSON
SAX, JAXB
- Práce s XML v Javě
- Nejnižší úroveň - SAX
- ContentHandler
- Validace s použitím XSD schéma
- XML Catalog
- Mapování mezi XML a objekty (OXM)
- JAXB 2.x
- Nástroje, xjc, schemagen
- Nesoulad XML vs. OOP, translator
- XML Soubor s přizpůsobením (customizations)
- Validace v rámci JAXB
- Částečný unmarshalling
- XmlJavaTypeAdapter
- Vypsání binárních objektů (pro MTOM)
SOAP, WSDL, REST
- SOAP
- SOAP přes HTTP
- WSDL (1.1)
- Jednosměrný požadavek, Požadavek-odpověď, Chyby (Fault)
- Document/Literal/Wrapped, RPC/Encoded
- WS-Addressing
- WSDL 2.0 (volitelně)
JAX-WS - klientská strana
- wsimport
- Vyšší úroveň - proxy objekt za javovým rozhraním
- Nižší úroveň - Dispatch
- Jednosměrné volání
- Vstupně/výstupní parametry a Holder<T>
- Asynchronní volání - Future
- Asynchronní volání - AsyncHandler a Executor
- @WebServiceRef a dependency injection v Java EE
JAX-WS - serverová strana
- Vyšší úroveň - vystavení třídy @WebService z Javy
- Nižší úroveň - ošetření požadavku pomocí rozhraní Provider
- Generování WSDL z tříd Javy - wsgen
- Generování Java tříd z WSDL - wsimport
- Chyby a výjimky (Fault, Exception)
JAX-WS a Spring Framework
- ContextLoader nebo SpringBeanAutowiringSupport (Java EE)
- Springová definice beanu pomocí CXF (Tomcat, Jetty)
- Specifická definice Metro a Springu (Tomcat, Jetty)
Pokročilý JAX-WS
- Dlouho trvající volání (minuty, hodiny) - Comet
- Handlery JAX-WS
- JAX-WS a WS-Addressing
- Binární přílohy MTOM
- BASIC authentication
- Šifrování pomocí HTTPS
- WS-Security
- WS-Policy, WS-SecurityPolicy
- UsernameToken
- Autentizace pomocí certifikátů klienta a serveru
- Šifrování na úrovni zpráv
WS-ReliableMessaging
Spring MVC a RESTové webové služby
- REST, RESTful Web Services
- GET, POST, PUT, DELETE
- Architektura Spring MVC, DispatcherServlet
- @RequestMapping, URLs, hlavicky HTTP
- @PathVariable
- @RequestBody, @ResponseBody, HttpMessageConverter
- JSON a JacksonJsonMappingView
JAX-RS a RESTové webové služby
- Jersey - implementace JAX-RS
- @GET, @POST, @PUT, @DELETE, URLs, @Path, @Consumes, @Produces, @PathParam
- Třída Application, konfigurace
- Java EE dependency injection
Ostatní technologie na vzdálenou komunikaci (volitelně)
- Serializace objektů v Javě
- RMI
- Spring HttpInvoker
- Spring JmsInvoker