Fast Track to EJB™3
Summary
Fast Track to Enterprise JavaBeans 3.0 (EJB 3)
The Enterprise JavaBeans 3.0 specification is a deep overhaul of the
EJB specification that is intended to improve the EJB architecture by
reducing its complexity from the developer's point of view. It
leverages annotations (introduced in Java 5) and Object-Relational
Mapping (ORM) technologies to eliminate the dependence on complex EJB
APIs, allow POJO (Plain Old Java Object) based development, and provide
an effective technology for creating distributed, transactional
components, and for mapping relational data to an object schema.
This course provides thorough coverage of the EJB3 technology -
presented in a clear and effective manner. It starts with the basic
concepts and APIs of EJB and then continues on with complex topics such
as message driven beans and transactions. New concepts such as the use
of annotations and the use of Dependency Injection to initialize
references are covered in depth. The course also includes a solid
introduction to developing persistent entities using the Java
Persistence API (JPA).
The coures uses hands-on labs and a well-paced approach to make this
complex technology understandable in an accelerated fashion. You will
come away with a comprehensive understanding of EJB and the important
issues that need to be considered to use it in real world applications.
This course can be customized to your requirements.
Course Objectives
On completion of this course, the student should be able to
Understand the EJB 3 architecture and API, and how it fits into the
overall Java EE architecture
Understand and use the EJB 3 annotations
Create, deploy & use stateful & stateless session beans
Use EJB 3 dependency injection to initialize resources
Understand and use Interceptors (Lifecycle and Business Method)
Use JNDI (Java Naming and Directory Interface)
Write EJB clients (remote and local)
Understand, deploy and use message-driven beans
Understand distributed transactions, the Java Transaction API, and
the EJB transaction model
Understand and use the EJB security model
Understand the new Java Persistence API (JPA)
Create deploy and use JPA persistent Entities
Map relational schemas to persistent entities, including the use of
primary keys
Understand and use the EntityManager
Understand and use Java Persistence Query Language
For more advanced classes, optional additional coverage of JPA
allows you to be familiar with more advanced JPA concepts such as
entity relationships (1-1, 1-N, N-N, unidirectional,
bidirectional), and inheritance
Understand practical architectural issues associated with EJB
applications
Length
3 Days
Format
50% hands-on, 50% lecture
Course Outline
Session 1: Introduction
Overview of EJB and Java Persistence API (JPA)
Goals of EJB, EJB in the Java EE architecture
EJB 3.0 Overview
Session Beans, Persistent Entities, Message Driven Beans
Lab: Server setup and introduction
Session 2: Session Beans
Session Bean Overview
Services provided, Stateless and Stateful Beans
Defining a Session Bean - EJB 3 Annotations
The Bean Implementation, Remote and Local Business Interface
Packaging and Deployment
ejb-jar file, Deployment Descriptors in EJB 3
EAR file
The EJB Container
Lab: Creating a Stateless Session Bean
JNDI Overview
Distributed Naming and Lookup
Context and InitialContext
Using JNDI
Writing an EJB 3 Client
Client View of a Session Bean
PortableRemoteObject and Casting
Running the Client
Lab: Creating an EJB Client
Session 3: Additional Capabilities
Resources and Dependency Injection
EJB referencing another EJB
Referencing Resources, Environment Entries
Connection Factories (DataSource and others)
Lab: Using Dependency Injection
Lab: Creating and Using Environment Entries
Session Bean Lifecycle and Interceptors
Stateless Session Bean Lifecycle
Business Method Interceptors, InvocationContext, Lifecycle
Callback Interceptors, Interceptor Classes
Lab: Working with Interceptors
Stateful Session Beans
Overview
Defining, Client Relationship
Lifecycle, Activation, Passivation
Lab: Stateful Session Beans
Timer Service
Session 4: Message-Driven Beans
Overview of Messaging Systems
Messaging, Loose Coupling
Pub/Sub, Point2Point
Overview of JMS API
Overview and Structure
ConnectionFactory and Destination
JMS Producer and Consumer Client example
JMS Messages
Message-Driven Beans (MDB)
Overview and Goals
@MessageDriven and MDB example
Configuring with activationConfig
State Diagram and Interceptors
Lab: Message Driven Beans
Session 5: Transactions and Security
Overview of Transactions and Transactional Systems
ACID, Transaction Managers, Resource Managers
Transactions in EJB 3
Declarative Transaction Management
Transaction Attributes and Transactional Scope
Transaction Scenarios and Bean-Managed Tx
Lab: Working with Transactions
Security
Java EE Security Overview (Role-based)
@RolesAllowed, @PermitAll
Programmatic Security
Lab: Integrating EJB and Java EE Security
Session 6: Exceptions
Exception Overview
Checked and Unchecked Exceptions
Exceptions in EJB 3
Application Exceptions, System Exceptions
EJB 3 Best Practices
When to Use, Coarse-Grained Business Interfaces, Session
Façade, Transaction Guidelines, Clustering
Session 7: Introduction to Java Persistence API (JPA)
Overview
Persistence Layers, Object-Relational Mapping (ORM), JDBC
JPA Overview
Mapping with JPA
Entities and @Entity, ids and @Id,
Generated Id Values
Basic Mapping Types
Lab: Mapping an Entity Class
EntityManager
Persisting to the DB, the EntityManager,
Persistence Units and Configuration
Injecting an EntityManager
Retrieving Persistent Entities
Lab: Using the EnityManager to persist and find an Entity
Session 8: Updates and Queries
Inserting and Updating
Transient, Persistent, Detached, Removed
Persisting new Entities, Updating a Persistent Instance
Lab: Inserting and Updating an Entity
Querying and JPQL
Object Based Queries, Select statements, WHERE clause
Named Queries
Lab: Creating and Using JPQL Queries
Versioning and Optimistic Locking
Detached Instances
Versioning and Optimistic Locking in EJB
[Optional] Session 9: Overview of Entity Relationships
Object Relationships Overview
Mapping Overview (1-1, 1-N, N-1, N-N)
Unidirectional and Bidirectional
Owner, Invoice and Join Columns
Lazy and Eager Loading, and Cascading
Inheritance Mapping Overview
[Optional] Session 10: Additional JPA Capabilities
Versioning Overview
Queries - Projection, Aggregate, Bulk Update/Delete
Embedded Objects
EJB 3 and Java SE
Hardware and Software Requirements
Availabe for the following platforms with detailed lab instructions
included for the specific platform:
Java EE Servers:
JBoss AS GlassFish IBM WebSphere/RAD (coming
soon) BEA Weblogic (coming soon)
Development Environments:
Eclipse IntelliJ IDEA IBM RAD (coming
soon)
Notice: Undefined index: HTTP_REFERER in /var/www/datadeliverance/inc/trademarks.inc on line 3
Notice: Undefined index: HTTP_REFERER in /var/www/datadeliverance/inc/trademarks.inc on line 4
Notice: Undefined variable: REMOTE_USER in /var/www/datadeliverance/inc/trademarks.inc on line 7
Notice: Undefined index: HTTP_REFERER in /var/www/datadeliverance/inc/trademarks.inc on line 7
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
PL/SQL and SQL*Plus are trademarks or registered trademarks of Oracle
Corporation. Microsoft is either a registered trademark or trademark of Microsoft
Corporation in the United States and/or other countries. MVS is a registered
trademark of the International Business Machines Corp. in the U.S. or other
countries or both. Motif, OSF/1, UNIX, and the "X Device" are registered
trademarks and IT DialTone and The Open Group are trademarks of The Open Group
in the U.S. and other countries. All other trademarks are the property of
their respective owners.