HomeTrainingCoursewareList of CoursesContact UsSearch
Call (605) 391-2110 to speak with a sales representative, or email us at sales@javalicense.com.
Course Title: EJB 3.0 Fast Track
Course Length: 3 Days
Course Number: Java111
Delivery: Instructor-led, On-Site
Audience: Java developers who want to use EJB3.
Description: The EJB 3.0 release represents a giant leap forward in the ease-of-use arena when compared to prior releases. This course not only covers traditional EJB concepts such as session and message-driven beans, but also new topics such as the Java Persistence API, Interceptors, and Dependency Injection via annotations. It 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.
Course Outline:

Overview

  • What is EJB?
  • EJB Goals
  • Types of Enterprise JavaBeans
  • Java Persistence API
  • EJB and Java EE (Enterprise Editions)
  • EJB in Java EE Architecture
  • SOA and EJB
  • SOA with Web Services and EJB
  • EJB 3.0

  • EJB 3.0 Overview
  • EJB 2.X Problems
  • EJB 3.0 Goals
  • Session Bean Usage
  • Persistent Entity Usage
  • MDB Usage
  • Session Bean Overview

  • What are Session Beans?
  • Stateless Session Beans (SLSB)
  • Stateful Session Beans (SFSB)
  • Session Bean are Distributed
  • Defining a Session Bean
  • Stateless Session Bean Definition
  • Calculator Remote Business Interface
  • Remote and Local Business Interfaces
  • Calculator Bean Local Business Interface
  • A Brief Note on Annotations
  • How Annotations Work
  • Annotation Definition
  • Using Annotations
  • What Else is Needed?
  • Packaging and Deployment

  • J2EE Packaging
  • EJB-JAR File
  • Deployment Descriptor (DD)
  • Deployment Descriptors in EJB 3
  • EJB-JAR File Structure
  • Enterprise Archive (EAR File)
  • application.xml File
  • Server Deployment
  • EJB Container
  • The EJB Container
  • Server Deployment
  • JNDI Overview

  • How do Remote Clients get EJB Access?
  • JNDI – Java Naming and Directory Interface
  • EJB Container Binds a Reference into JNDI
  • Client Looks up Reference in JNDI
  • JNDI Tree Structure
  • JNDI API
  • The Context Interface
  • The InitialContext Class
  • Specifying the InitialContext Properties
  • Using JNDI
  • EJB Client

  • Client View of a Session Bean
  • Client Invocation of a Session EJB
  • PortableRemoteObject and Casting
  • Running a Client
  • Dependency Injection

  • Dependency Injection
  • The JavaTunes Online Music Store
  • An EJB Referencing Another EJB
  • CatalogMaintenance
  • Injection of CatalogMaintenance
  • What is Happening
  • Deployment Descriptor & EJB Environment

  • Issues with Obtaining Resources
  • Referencing Resources External to EAR
  • Reference & Deployment Descriptor Usage
  • Resolving a JNDI Name
  • Simple Environment Entries
  • Declaring Simple Environment Entries
  • More about the Standard DD
  • Setter Injection
  • Resource Manager Connection Factories
  • More on the Enterprise Bean Environment
  • The Environment is a Level of Indirection
  • Looking up Resources in the Environment
  • Looking up via EJBContext
  • Looking up via JNDI API
  • More on the @Stateless Annotation
  • More on the @EJB Annotation
  • More on the @Resource Annotation
  • Deployment Descriptor vs Annotation
  • Stateless Session Bean Lifecycle & Interceptors

  • Stateless Session Bean State Diagram
  • Lifecycle of SSB
  • Client Call of a Stateless SB Method
  • Interceptors
  • Business Method Interceptors
  • InvocationContext Interface Details
  • Interceptor Method Details
  • Interceptor Class
  • Using Interceptor Classes
  • Method Level Interceptors
  • Lifecycle Callback Interceptors
  • Lifecycle Interceptor in the Bean Class
  • Lifecycle Interceptor in a Separate Class
  • Stateful Session Beans

  • Stateful Session Bean (SFSB) Overview
  • Coding a Stateful Session Bean
  • Stateful Session Bean Clients
  • Stateful Session Bean Removal
  • Stateful Session Passivation/Activation
  • When to Use Stateful Session Beans
  • @PrePassivate and @PostActivate Callbacks
  • Stateful Session Bean State Diagram
  • The Timer Service

  • Bean Requirements
  • The javax.ejb.Timer Interface
  • The javax.ejb.TimerService Interface
  • How the Timer Works
  • Issues with Using the Timer Service
  • Overview of Messaging Systems

  • What is Messaging?
  • Loose Coupling
  • When is Messaging Used?
  • Two Messaging Models
  • Publish/Subscribe – Illustrated
  • Point-to-Point – Illustrated
  • Message Delivery – Push versus Pull
  • Overview of JMS API

  • What is Java Message Service?
  • API Structure
  • JMS Interfaces
  • Administered Objects
  • Administered Objects and JNDI – Illustrated
  • Client Workflow
  • Synchronous Queue Consumer Client
  • Asynchronous Queue Consumer Client
  • JMS Message Types
  • Message Header Fields
  • Message-Driven Beans

  • J2EE Message Producers and Consumers
  • Message-Driven Bean (MDB) Overview
  • Goals of Message-Driven Beans
  • MDB Consumption of a Message
  • @MessageDriven Details
  • Activation Configuration Properties
  • Specifying a Destination for an MDB
  • Specifying a Destination Using a DD
  • Message-Driven Bean Lifecycle

  • Lifecycle Overview
  • MDB State Diagram
  • Interceptor Methods
  • Transaction Definition

  • Transaction Lifecycle
  • Transactions Modularize Systems
  • Transactions Clarify Systems
  • Transactional System Overview

  • Transactional System Components
  • Transactional Object
  • EJB Transaction Support
  • Transactions in EJB

  • EJB Declarative Transaction Management
  • EJB Transaction Attributes
  • Specifying Transaction Attributes
  • Transactional Scope
  • NOTSUPPORTED
  • SUPPORTS
  • REQUIRED
  • REQUIRESNEW
  • MANDATORY
  • NEVER
  • Beans Have a Say in Transactions
  • Transaction Attributes – Some Choices
  • Explicit/Bean-Managed Transactions
  • Transaction Isolation Levels
  • Multi-Process TX and Two Phase Commit
  • Security in EJB

  • Goals of EJB Security
  • Declarative Security
  • Roles
  • Users and Groups
  • Programmatic Security
  • Logging on
  • Exception Handling

  • Exception Hierarchy
  • Exception, Error, RuntimeException
  • Application Exceptions in EJB
  • Defining Application Exceptions
  • Container Handling of Application Exception
  • Bean Throwing of Application Exception
  • Client Handling of Application Exceptions
  • System Exceptions Indicate Failure
  • Container Handling of System Exception
  • Client Handling of System Exceptions
  • EJB 3 Best Practices

  • When to Use EJB
  • Keep Business Interfaces Coarse Grained
  • Session Faηade Structure
  • Use Container-Managed Transactions
  • Transaction Duration
  • Local and Remote Business Interface
  • Tuning
  • Session Bean Tuning
  • Clustering
  • Clustering Session Beans
  • JPA Overview

  • The Issues with Persistence Layers
  • Object-Relational Mapping (ORM) Issues
  • Issues with JDBC Alone
  • Java Persistence API Overview
  • JPA Benefits
  • Java Persistence Environments
  • Mapping a Simple Class

  • Entity Classes
  • Entity Class Requirements
  • The Entity Declaration
  • The Event Class
  • The Id Property
  • Filed Access or Property Access
  • The EVENTS Table
  • Generated Id Property
  • Mapping Properties
  • Basic Mapping Types
  • Persisting to the Database
  • Entity Manager and Persistence Context

  • The Entity Manager & Persistence Context
  • The EntityManager
  • The EntityManager Interface
  • Persistence Unit
  • Injecting an EntityManager
  • Retrieving Persistent Objects
  • Container-Managed Entity Manager
  • The Persistence Unit
  • persistence.xml
  • Inserting and Updating

  • Transient, Persistent, Detached Instances
  • Removed Instances
  • Persisting a New Entity
  • Synchronization to the Database
  • Updating a Persistent Instance
  • Detached Entities
  • Querying and Java Persistence Query Language (JPQL)

  • Java Persistence Query Language
  • JPQL Basics
  • Executing a Query
  • Where Clause
  • Query Parameters
  • Using Query Parameters
  • Named Queries
  • Versioning/Optimistic Locking

  • Optimistic Locking
  • Using a Detached Instance
  • Versioning
  • Version Property in Java Class
  • Locking Objects
  • Lock Modes
  • Relationships Overview

  • Object Relationships
  • Characteristics of Relationships
  • Directionality
  • Characteristics of Relationships
  • Mapping Relationships

  • Unidirectional Many-To-One Relationship
  • The Table Structure – Many-To-One
  • Using Join Columns
  • Bidirectional One-To-One Relationship
  • Using the Relationship
  • More on the Inverse Side
  • Bidirectional One-To-Many Relationship
  • Mapping the One-To-Many Relationship
  • Other Collection Types
  • Lazy and Eager Loading
  • Cascading Operations
  • The Cascade Element
  • Queries Across Relationships
  • OUTER and FETCH JOIN
  • Mapping Inheritance

  • Entity Inheritance
  • Details of Entity Inheritance
  • Single-Table Strategy
  • Entity Definitions for Single-Table
  • Single Table: Pros and Cons
  • Joined (Table per Subclass)
  • Entity Definitions for Joined
  • Joined: Pros and Cons
  • Table per Concrete Class
  • More on Querying

  • Projection Queries
  • Aggregate Queries
  • Bulk Update and Delete
  • Native SQL Queries
  • Embedded Objects

  • Using Embedded Objects
  • Embeddable Class
  • Java Persistence with Java SE

  • Using JPA with Java SE
  • Java SE APIs
  • Java Persistence Best Practices

  • Primary Key Considerations
  • Use Named Queries
  • Use Lazy/Eager Loading Appropriately
  • Be Aware of Transaction Semantics
  • Encapsulate JPA Code
  • Use Report Queries Where Applicable
  • Optimize Read-Only/Mostly Data Access
  • Paging Data
  • Consider Going Outside of Java Persistence
  • Know Your Provider Implementation
  • JLicense, Inc. Copyright 2007. This site runs on a Tomcat server behind Apache's httpd Web server and uses JavaServer Pages, JavaServer Faces, JBoss RichFaces, and Ajax.