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
