Course intended for:

The training is aimed at Java programmers, system analysts, and architects who want to create advanced RESTful web services.

Course objective:

Aim of the training is to familiarize its participants with advanced technologies of RESTful web services. Trainees will learn details of http protocol, techniques of RESTful web services and its clients implementation, methods and standards for describing, securing, increasing efficiency of RESTful services. Trainees learn details of those standards as JAXB 2.0, Servlet 3.0, JAX-RS 1.1. Practical part of the training will be carried out on a pile of JBoss AS and JBoss Resteasy, but on request can be executed on another compatible stack e.g. .: Apache Tomcat and Apache CXF. The training is carried out in several variants - for programmers, system analysts, architects. Depending on the training group, the main emphasis is on theoretical issues or practical implementation and integration solutions.


Participants are required at least basic programming skills in Java, basic knowledge of web services and XML processing technologies. Basic knowledge of JEE is also recommended.

Course parameters:

2*7 hours of lectures and workshops at a ratio of 1/3. During the workshops examples presenting advanced capabilities and flexibility of web services are implemented. Group size: max. 8-10 people.

Course curriculum

  1. Introduction

    1. key concepts and standards of web services: XML, DTD, XSD, XSLT, SOAP, WSDL, WADL, JAX-RPC, JAX-WS, JAX-RS, JAXP, SAX, StAX, DOM, JAXB, JAXR, UDDI, SAAJ, JSON, AJAX, REST itd.

    2. what is REST?

    3. RESTful versus SOAP web services

  2. Transport layer

    1. detailed discussion of HTTP

    2. the implementation of session in web applications

    3. web services and transport protocol: SOAP over HTTP, JMS, SMTP / POP3, TCP, UDP; XML / JSON / XHTML browser over HTTP; other e.g.: WebSocket, MSMQ

  3. Metadata, configurability and flexibility

    1. WSDL 2.0, WADL

    2. JAX-R, UDDI, REST registries and repositories

  4. Security

    1. authentication and authorization at http, configuration of servlet security, JAAS, OAuth

    2. standards: PKI and X.509, SSL, HTTP headers responsible for security, XML Digital Signature and so on.

  5. Reliability

    1. REST reliability
  6. Performance and efficient processing of XML and JSON

    1. methods used to increase processing efficiency at the level of the transport layer protocol, application layer protocol

    2. standards: MTOM, XOP, MIME, SMIME, JAXP, SAX, StAX, DOM, JAXB, XPath, XSLT, etc.

    3. JSR 222 or Java Api for XML Binding (JAXB) 2.0 in details

      1. serialization, externalization, marshalling

      2. JAXB architecture

      3. mapping Java classes to XML Schema

      4. marshalling, unmarshalling

      5. validation

      6. modification of the standard mappings using annotations

  7. Implementing REST services based on Servlets

    1. JSR 315, Servlet 3.0 in details

      1. annotations and deployment descriptor

      2. safety

      3. asynchrony

      4. other

    2. web application filters

    3. web application event listeners

  8. JAX-RS as a implementation of REST

    1. JSR 311, Java API for RESTful Web Services (JAX-RS) 1.1 in details

      1. annotations and deployment descriptor, basic concepts

      2. working with parameters (@ * Param)

      3. working with @Produces and @Consumes

      4. working with the context and @Context

      5. other

    2. JAXB and JAX-RS

      1. MIME types and MIME providers providers

      2. marshalling and @Provider

    3. Others JAX-RS implementations

      1. Apache CXF

      2. JBoss RESTEasy

      3. Apache Wink

      4. others, np.: commercial JEE6 standards

    4. JBoss RESTEasy in details

      1. JAX-RS compliance

      2. additional features

        1. error handling

        2. compression

        3. cache

        4. interceptors

        5. asynchronous processing

        6. security

        7. AJAX support

          1. integration with other frameworks and application servers
    5. JAX-RS 2.0

  9. REST and popular java frameworks

    1. Spring

    2. Struts

    3. Seam

  10. REST clients implementation

    1. Jersey Client API

    2. JAX-RS 2.0 Client API

    3. Spring RestTemplate

    4. AJAX

    5. generic http client

Any questions?

* Required.

Phone +48 22 2035600
Fax +48 22 2035601