JEEADV - Advanced Java EE Programming
STATE
CITY
NSW
QLD
Sydney
DATE
Choose a date...
18 May 15 - 22 May 15
15 Jun 15 - 19 Jun 15
06 Jul 15 - 10 Jul 15
10 Aug 15 - 14 Aug 15
07 Sep 15 - 10 Sep 15
What is OLL?
PRICE
DURATION
$4,050.00 inc. GST
5 Days
Overview:
This course introduces students to the Enterprise JavaBeans (EJB 3.0) technology and is ideal for those who have never programmed using EJB. This course will then take students beyond the fundamentals of Enterprise Java Bean (EJB 3.0) programming using Eclipse. This course covers the core concepts regarding EJB including why they are important, differences between stateless and stateful sessions, the Java Persistence API, and the JPA Entity Lifecycle using Eclipse. In addition, students will learn about building message-driven Beans, EJB Security, utilising Web Services technologies like JAX-WS, and managing distributed transactions. Students will also look at the Java Persistence Query Language (JPA QL), entity relationships, Java Interceptors, EJB Timer service, Hibernate JPA caching, EJB design patterns, and deployment.
Target Audience:
Students should have good Java programming knowledge and should be familiar with web application programming, including servlets and JSPs.
Module 1: Java Enterprise Edition (EE) Overview
Introduction to Java Platform
Java Community Process (JCP)
Introduction to Java EE
Why Move to Java EE
Java EE - New and Enhanced Features
Java EE Software Packaging
Java EE Technologies
Module 2: Java EE Tools in Eclipse WTP
Eclipse Platform
Eclipse Workspace
Perspectives, Views & Editors
Basic Operations with Eclipse Views and Perspectives
The Java Perspective
The Debug Perspective
Navigator View
Package Explorer
Outline View
Problems View
Eclipse Preferences
Build and Validation
Code Completion, Templates and Snippets
Searching
Configure Compiler Class Path
JRE Switching
Eclipse WTP
Java EE Perspectives
Project Explorer View
Servers View
JPA Tools
Module 3: Enterprise JavaBeans (EJBs) Overview
Need for EJBs
Distributed Computing
Distributed Transaction
Distributed Security
What are EJBs?
Main Characteristics of EJBs
EJB Remote Method Call
EJB Architecture Components
EJB Client
EJB JAR File
EJB Container
EJB Server
Enterprise JavaBeans
Session Beans
Entity Beans
Java Persistence API - Entities
Message-Driven Beans (MDBs)
EJB Specification
Module 4: Stateless Session Beans
Session Beans
Stateless Session Bean
Stateless Session Bean Pooling
Stateful Session Bean
Annotations
Stateless Session Bean Components
JNDI - Overview
Business Interface Details
Bean Class Details
Session Bean Lifecycle
Stateless Session Bean Lifecycle
Module 5: Stateful Session Beans
Stateful Session Bean
Stateful Session Beans
Session Bean Lifecycle
Stateful Session Bean Lifecycle
Stateful Session Bean Components
Stateful Session Bean Client
Removing the Bean
Module 6: Entities and Java Persistence API
Data Persistence
Java Persistence API
Session Beans Vs Entities
Entities
Persisting and Retrieving Data
Accessing Entities
EntityManager & Persistence Unit
Persistence Context
persistence.xml Hibernate Provider
persistence.xml Open JPA Provider
persistence.xml - Toplink
Entity Instance Lifecycle
Creating EntityManager in Session EJB
Creating EntityManager in a Plain Java Class
Working With the EntityManager Interface
Transaction Basics
Module 7: JPA Entity Lifecycle
Entity Lifecycle
When is an Entity Managed or Detached?
Implementing the CRUD Pattern
Accessing Entities Using Stateless Session Beans
Inserting Data
Retrieving Data
Updating Data
Deleting Data
Merging Entities
Life-Cycle Callbacks
External Callback Class
Synchronising with Databases
Entity Lookup
JPAQL (JPA Query Language)
Module 8: References and Dependency Injection
Role of References
EJB Reference Annotations
Resource Reference Annotations
Dependency Injection
Annotation Injection
Deployment Descriptor Injection
Class Level References
Multiple References
EJB References in Deployment Descriptors
Resource References in Deployment Descriptors
Reference Lookup
EJBContext
JNDI Lookup with EJBContext
Overriding Reference Annotations
Default Reference Name
Resolving References
mappedName Attribute
Overloaded Reference Names
Reference Best Practices
Module 9: Java Persistence Query Language (JPA QL)
JPA Query Language
Basic JPAQL Syntax
Simple SELECT Examples
The SELECT clause
Reading Data from Code
The WHERE Clause
Using JPAQL from Session EJB
Named Query
Multiple Named Queries
Bulk Updates
Bulk Delete
Running Native SQL Query
Native SELECT Query
Native SQL Delete and Insert
Named Native Query
Entity Relationship Overview and One-to-One
Relationship Between Entities
Anatomy of a Relationship
Foreign Key
Schema
One-to-One Unidirectional
Creating Entity Instances
Traversing the Relationship
The Cascade Behavior
One-to-One Bidirectional
Traversing the Relationship
Module 10: Complex Entity Relationships
One-To-Many and Many-To-One
Many-to-One Unidirectional
Modelling One-to-Many
Many-to-Many
Modelling Many-to-Many
Unidirectional One-to-Many
Modelling Unidirectional One-to-Many
Relationship in JPA QL
Fetching Optimisations
Lazy vs. Eager Initialisation
Lazy Initialisation
Problems with Lazy Initialisation
Fetch Join Query
Module 11: Entity Inheritance
Inheritance
Inheritance and Entities
Inheritance Strategies
Single Table Per Class Hierarchy
Pros and Cons
Table Per Concrete Class
Table Per Concrete Class: JBoss Warning
Table Per Concrete Class
Table Structure: Table Per Concrete Class
Table Per Concrete Class: Pros and Cons
Joined Subclasses
Table Structure: Joined Subclasses
Joined Subclasses: Pros and Cons
Which Approach To Use?
Module 12: Message-Driven Beans
The Trouble with RMI/IIOP
Messaging to the Rescue
Messaging Features
Message-Oriented Middleware
Messaging Domains
Publish/Subscribe
Point-to-Point
Java Message Service
JMS Programming: Overview
The JMS Interfaces
Integrating JMS and EJB
Message-Driven Beans Are Different From Other EJBs
Message-Driven Beans Cannot Talk to Their Clients
Message-Driven Beans are Stateless
Durable Subscription
Message-Driven Bean Interfaces
javax.jms.MessageListener
javax.jms.Message
Specialised Message Types
Lifecycle
Transactions
Security
Load Balancing
Clustering and Topics
Clustering and Queues
Poison Messages
Building a Response
Potential Problems
Type Checking and Messages
Testing Message-Driven Beans
How EJB Security Works
Protecting Web Resources
Setting Method Permission
Defining Roles
Defining Roles Using Annotations
Specify Methods Permission
Disable Security Check
Excludes List
RunAs Security Identity
RunAs Security Identity Configuration
Programmatic EJB Security
Security Role Reference
Module 14: Web Service Access to EJB
Web Services
Operation and Implementation
WSDL
Typical Development Workflow
Advantages of Web Services
Web Services and EJB
Web Service Clients
JAX-WS Overview
JAX-WS Framework
Java to XML Data Conversion
Main Goals of JAX-WS
JAX-WS Server
WSDL Overview
WSDL Document Tags
Web Service EJBs
Annotate The Session Bean
Annotate the Methods
Service Endpoint Interface
Package and Deploy
Module 15: EJB Timer Service
Container Managed Timer Service
EJB Timer Service
Interaction between Timer Service and EJB
Timer Service API
The TimerService Interface
Obtaining the Timer Service
Creating a Timer
Getting All Timers
The Timeout Callback method
The Timer Interface
Timer and Transaction
Limitations of EJB Timer Service
Need for Transactions
Transactions
ACID Properties
Transaction Components
Distributed Transactions
Distributed Transaction Components - Two Phase Commit
Java Transaction API (JTA)
Object Transaction
EJB Transaction Basics
Transaction Propagation
Transaction Outcome
Container Managed Transaction
Container Managed Transaction Settings
Interacting with Container Managed Transactions
Transaction Attributes Support
Bean Managed Transaction
Client Managed Transaction
Transaction Isolation
Isolation Level
Interceptors
Internal Interceptor
External Interceptors
Setting Class Level Interceptors
Excluding Default and Class Level Interceptors
Interceptors on Lifecycle Callbacks
Module 18: EJB Deployment
Packaging EJB JAR File
The Bean Classes
Dependent Classes
Business Interfaces
Client JAR File
The Deployment Descriptor
Basic Deployment Descriptor
Configuring a Session EJB
Configure Assembly Description
Module 19: Hibernate JPA Catching
Need for Caching
Factors Involved in Caching
Using Hibernate to Cache JPA Entities
Types of Hibernate JPA Cached Data
Steps to Configure Hibernate Second Level Cache
Decide JBoss Cache Configuration
Standard JBoss Cache Configurations
Configure JPA Persistence Caching Properties
Sample persistence.xml with Hibernate Caching
Configure JPA Entities to Allow Caching
Configure JPA Queries to Allow Caching
Tuning Cache Eviction
JBoss Cache EvictionRegionConfig
Module 20: EJB 3 Design Patterns
Session Fa ade Pattern
JPA and Session Fa ade Pattern
Message Fa ade Pattern
Message Fa ade Using JMS
Message Fa ade Using Timer Service
The Command Pattern
Implementing Command Pattern
Example Command Pattern
Data Transfer Object (DTO) Pattern
JPA Entity as DTO
Problem With JPA Entity as DTO
Version Number Pattern
JPA and Version Number Pattern
Primary Key Generation
JPA and Primary Key Generation
Fast Lane Pattern
JPA and Fast Lane Pattern
Course Ratings Averaged from 55 responses. Overall Satisfaction
Skills Bundle This course can be purchased as part of the following bundle(s).
CODE:0-0-JEEADV-ILT
{None}
9:00 AM - 5:00 PM
9:00 AM - 5:00 PM
9:00 AM - 5:00 PM
9:00 AM - 5:00 PM
9:00 AM - 5:00 PM
Choose location
Sydney
Melbourne
Brisbane