Java EE Advanced

JEE Advanced Training

Java EE Advanced
=====

—–
* Course Id : JAVA-JEED
* Duration : 70 Hours

Overview
—–

* This course is designed to teach participants advanced JEE concepts with hands-on exercises
* Participants need to be aware of Java and fundamental Java EE
* Concepts such as Java EE APIs, CDI, Interceptors, Async programming are taught in detail

Training Objectives
—–

All attendees will learn:
* Java EE APIs
* CDI
* Interceptors
* Timers
* Async programming in JEE
* JPA
* JAX-RS
* WebSocket programming

Pre-Requisites
—–

Basic knowledge on:
* Basic computer skills
* Object-Oriented Programming in Java

Course Structure
—–

* We provide more focus on hands-on in our technical courses (typically 80% hands-on/20% theory)
* Students get the capability to apply the material they learn to real-world problems

Materials Provided
—–

* All participants receive
* PDF of slides
* PDF of handson
* Access to instance with lab environment

Software Requirements
—–

Any of the following
* Any current internet browser
* vnc client
* rdp client

Hardware Requirements
—–

* Processor: 1.2 GHz+
* RAM: 512 MB+
* Disk space: 1 GB+
* Network Connection with low latency (<250ms) to Internet

## Daywise Java EE Course Outline
—–
## Day 1
—–

* Unit 1 : Course Overview
* Unit 2 : Introduction to Basic Java EE APIs
* Unit 3 : EJBs and CDI managed beans
* Unit 4 : CDI producers

## Day 2
—–

* Unit 5 : Qualifiers
* Unit 6 : Scopes
* Unit 7 : Events
* Unit 8 : JAX-RS

## Day 3
—–

* Unit 9 : Integrating JSON-B
* Unit 10 : Integrating JSON-P
* Unit 11 : Custom HTTP responses
* Unit 12 : Bean Validation

## Day 4
—–

* Unit 13 : Exception handling
* Unit 14 : Mapping domain entities with JPA
* Unit 15 : Entity relations
* Unit 16 : Datasources

## Day 5
—–

* Unit 17 : Transactions
* Unit 18 : Interceptors
* Unit 19 : Binding custom interceptors
* Unit 20 : Configuring Java EE applications

## Day 6
—–

* Unit 21 : Caching
* Unit 22 : Logging
* Unit 23 : Asynchronous EJBs
* Unit 24 : Asynchronous CDI events

## Day 7
—–

* Unit 25 : Managed threads
* Unit 26 : Timers
* Unit 27 : Asynchronous JAX-RS resources
* Unit 28 : Accessing HTTP using JAX-RS

## Day 8
—–

* Unit 29 : Extended client usage
* Unit 30 : Making HTTP clients resilient
* Unit 31 : Asynchronous, reactive clients
* Unit 32 : Implementing SSE resources with JAX-RS

## Day 9
—–

* Unit 33 : Server-sent event clients
* Unit 34 : Implementing WebSocket server endpoints
* Unit 35 : Accessing WebSocket endpoints

## Detailed JEE Course Outline

Unit 1 : Course Overview
* Introducing Java EE 8
* Compare Business domain logic in Java EE vs Java
* Review Business-oriented solutions in Java EE

Unit 2 : Introduction to Basic Java EE APIs
* Business domain classes and relationsin plain Java
* Business boundary for the use cases
* Delegate complex business logic to injected beans
* Implement domain business logic in Java EE

Unit 3 : EJBs and CDI managed beans
* Differences between EJBs and CDI managed beans
* Similarities in the usage of EJBs and CDI managed beans
* Setup a basic beans.xml to configure CDI for injection of all beans

Unit 4 : CDI producers
* CDI producers
* Inject a component for flexibility
* Define CDI producer methods or producer fields
* Compare injected beans with produced values

Unit 5 : Qualifiers
* CDI qualifiers
* Custom qualifier annotations
* Injected value ambiguity
* Bind CDI producers to injection points using qualifiers
* Custom qualifier annotations for type-safety

Unit 6 : Scopes
* Different scopes or managed beans
* EJB stateless, stateful and singleton scope
* Injecting CDI managed beans with dependent scope
* Define CDI scopes

Unit 7 : Events
* Business-motivated domain events as plain Java classes
* Inject and fire the event
* Event handling mechanism

Unit 8 : JAX-RS
* JAX-RS application base application path
* JAX-RS resources and annotations
* HTTP payloads with content types

Unit 9 : Integrating JSON-B
* JSON-B annotations
* JAX-RS resources with JSON-B
* Declaratively enhance or change the Java type definitions

Unit 10 : Integrating JSON-P
* JSON mappings not covered by JSON-B
* JSON-P builder API
* JAX-RS resources with JSON-P types

Unit 11 : Custom HTTP responses
* JAX-RS Response type for custom HTTP responses
* Send different status codes
* UriInfo context object

Unit 12 : Bean Validation
* @Valid annotation
* Bean Validation annotations
* Custom validation constraint annotations

Unit 13 : Exception handling
* ExceptionMapper
* ExceptionMapper for a specific exception
* Activate ExceptionMapper via @Provider
* ConstraintViolationExceptionMapper

Unit 14 : Mapping domain entities with JPA
* persistence.xml mapping file
* Persistence units
* @Entity – Map Domain entities
* EntityManager

Unit 15 : Entity relations
* @Enumerated
* @OneToOne, @OneToMany, @ManyToOne and @ManyToMany
* Join columns and properties

Unit 16 : Datasources
* Default datasource
* Persistence units with JNDI
* Datasource properties

Unit 17 : Transactions
* EJB mechanism for technical transactions
* Transaction type definition
* Rollback behaviors

Unit 18 : Interceptors
* Interceptor class
* @Interceptors
* Custom interception logic
* Inject managed beans into the Interceptor

Unit 19 : Binding custom interceptors
* @InterceptorBinding
* Annotate interceptor
* Annotate business method or bean
* Interceptor Activation via beans.xml
* Activation via specified priority

Unit 20 : Configuring Java EE applications
* Identify and inject configured values into managed beans
* Define CDI producer methods that lookup and expose configuration values
* Specify custom qualifiers to further qualify the desired configuration values

Unit 21 : Caching
* Requirements for caching
* Custom caches via application scoped or singleton beans
* JCache
* Other vendor-specific solutions

Unit 22 : Logging
* Motivation for logging
* Custom log facades
* Log other errors

Unit 23 : Asynchronous EJBs
* @Asynchronous
* Future return types
* Managed bean scope in asynchronous methods

Unit 24 : Asynchronous CDI events
* Asynchronous EJB methods
* fireAsync method
* @ObservesAsync

Unit 25 : Managed threads
* ManagedExecutorService
* Issues with application-managed threads
* Parallel streams starting own threads
* CompletableFutures

Unit 26 : Timers
* @Schedule annotation
* Bean scopes with application timers
* ManagedScheduledExecutorService

Unit 27 : Asynchronous JAX-RS resources
* @Suspended AsyncResponse
* ManagedExecutorService
* Asynchronous EJB methods
* CompletionStage return type

Unit 28 : Accessing HTTP using JAX-RS
* ClientBuilder
* WebTarget
* Invocation builder

Unit 29 : Extended client usage
* JSON-P JsonArray
* JAX-RS GenericType
* WebTargets path template

Unit 30 : Making HTTP clients resilient
* Potential runtime exceptions
* Interceptors
* Connection timeouts
* Read timeouts

Unit 31 : Asynchronous, reactive clients
* CompletableFutures
* JAX-RS rx invocation builder
* CompletionStage types
* CompletableFuture types

Unit 32 : Implementing SSE resources with JAX-RS
* SSE JAX-RS resource methods
* Use the Sse
* SseBroadcaster
* SseEventSink
* Resend events manually

Unit 33 : Server-sent event clients
* SseEventSource
* Event consumer registration
* Connect to SseEventSource

Unit 34 : Implementing WebSocket server endpoints
* ServerEndpoint
* MessageDecoders
* Encoders
* Bidirectional remote object

Unit 35 : Accessing WebSocket endpoints
* ClientEndpoint
* MessageDecoders
* Encoders
* WebSocket client

Scroll to top