EC63 - J2EE Enterprise JavaBeans Workshop - 3 Days

View Dates and Locations

Course Description

This course is designed for the developer already familiar with Java Server-side programming looking to gain detailed knowledge of Enterprise JavaBeans (EJB2.0) development


The student should be familiar with Java Server side programming using the appropriate IDE (Integrated Development Environment). This can be gained by attending course EC31.


Whilst covering the basics of the different types of beans and how they are used, this course also aims to give an insight into how they work internally, since this leads to further understanding of why EJB's are used over existing technologies.

Issues such as Security, Transaction Control, Passivation, Resource Pooling and Distributed Objects are discussed.

On completion of this course the student will be able to:

  • Develop EJBs using a choice of IDE (Integrated Development Environment)
  • Develop Stateless and Stateful Session Beans
  • Develop Entity Beans with Bean Managed Persistence
  • Develop Entity Beans with Container Managed Persistence (CMP)
  • Develop Relationships and EJB QL for CMP beans
  • Control the Security, Transaction Management and Passivation Characteristics of the Beans
  • Use an Application Server to deploy and test EJBs and related components
  • Store and re-access EJBs using a servlet session


Development will be performed using:

  • the Java Development Kit (JDK) plus a text editor
  • JBuilder
  • IntelliJ
  • NetBeans
  • Websphere Studio Application Developer
  • Rational Application Developer
  • Eclipse


For on-site courses (i.e. at your premises), we are more than happy to tailor the course agenda to suit your exact requirements. In many cases, we are able to build your in-house standards and naming conventions into the delivered course.

On-site course enquiry (from £165 pp per day)

Course Details

View Dates and Locations

Enterprise JavaBeans (EJBs) Overview
Benefits of using EJBs
JavaBean and Enterprise JavaBean Differences
Multi Tier Applications
Distributed Object Access, CORBA overview, RMI overview, RMI over IIOP
EJB Environment and EJB Types
Transaction Control, Session Beans, Entity Beans, Message-Driven Beans
Session / Entity / Message-Driven Differences
EJB in more detail
EJB Anatomy, Containers, EJB Architecture, EJB Application Components
Client Access
Client View of an EJB, Java Naming and Directory Interface
EJB Development Phases
EJB Development Roles

Stateless Session Beans, Stateful Session Beans, Stateless or Stateful?
EJB Composition
Life Cycles
The Stateful Session Bean Life Cycle
The Stateless Session Bean Life Cycle
Session Bean Components
Session Bean Methods, Developing the Session Bean
Stateless Session Beans
The Home Interface, The Remote Interface, Coding the EJB Object
Stateful Session Beans
The Home Interface, The Remote Interface, Stateful EJB Object
Helper Classes
Accessing Environment Entries

General Client Access
Model / View / Controller Design
EJB Environment, The EJB Client, Java Naming and Directory Interface
Accessing Objects Remotely - RMI
Invoking the Enterprise Java Bean
Session Tracking Overview
Using HTML and Servlets, Session Tracking API
Session Creation and Lookup, Session Lifecycle
Servlet EJB Access
Saving and Restoring EJBs in a Servlet Session
Comparing Stateful EJBs
Passing a Session Bean's Object Reference

J2EE Perspective
EJB Editor, EJB Extension Editor
Creating EJBS
Enterprise Applications, EJB Projects, Adding EJBs to the project
Testing EJBS
Generating Deployed Code, Generating a Server and Server Configuration
Setting EJB server properties
Testing the EJB using the test client
Running a Test Client Application
Testing in RAD

Setting up Local interfaces using RAD 6.0
References and Local interfaces
Defining References in RAD 6.0
Using the local client API

Shared Access and Transaction Management
The Entity Bean Life Cycle
Entity Bean Components
Method Summary, The Home Interface, The Remote Interface
Coding a Bean Managed Persistence Bean
Entity Bean Syntax, Related Methods
Entity Bean Primary Keys, The Entity Bean Object
The setEntityContext and unsetEntityContext Methods
The ejbCreate and ejbPostCreate Methods
The ejbFind Methods
The ejbRemove Method
The ejbLoad Method and ejbStore Methods
The ejbActivate and ejbPassivate Methods
Other Business Methods
Entity Beans Client access
Invoking the Entity Bean
Comparing Entity Beans
Passing an Entity Bean's Object Reference

Why Use Container Managed Persistence?
Local Home and Local Interfaces
Coding a Container Managed Persistence Bean
Container Managed Persistence Bean Methods
The Deployment Descriptor and CMP beans
Mapping the Entity Bean to the Database
The Top-Down Approach using RAD 6.0
The Bottom-Up Approach using RAD 6.0
The Meet-in-the-middle Approach using RAD 6.0

A One-To-One CMR example
A Many-To-One CMR Example
Setting Up Relationships Using RAD 6.0

Using EJB QL in findBy...() methods
Using EJB QL in ejbSelect...() methods
Selecting on collection based CMR fields

Creating Entity EJBS
Enterprise Applications, EJB Projects, Adding EJBs to the project
Testing Entity EJBS
Generating Deployed Code, Generating a Server and Server Configuration
Setting EJB server properties
Testing the EJB using the test client
Running a Test Client Application
Testing in RAD

The Data Perspective
Database Connections
Server Configuration
DataSources, Java Naming and Directory Interface - JNDI
Connection Pooling using DataSources
Registering DataSources - The Persistent Name Server
Coding Database Access
Getting Database Connections via a DataSource
Getting Database Connections using EJB Properties
Using DataSources within Applications
When to Connect
Isolation Levels
Setting Isolation Levels using RAD 6.0

Transaction Processing
Container-Managed Transactions
Transaction Attribute Values
Transaction Attributes and Scope
Setting Transaction Attributes using RAD 6.0
Transaction Control
Rolling Back a Container-Managed Transaction
Bean-Managed Transactions
Session Beans - Returning Without Committing
Controlling the Transaction from a Servlet
Transaction Guidelines for Applications

What is a Message Driven Bean?
Message Processing, When to use Message Driven Beans
The Life Cycle of a Message Driven Bean
Access to Message Driven Beans
The Message Driven Bean Client
The Message Driven Bean Class
Coding Message Driven Beans
Message Driven Bean Methods

Java Exceptions
Unchecked and Checked Exceptions
EJB Exceptions
Application Exceptions
System Exceptions

Security Overview
Security Concepts
Container Managed Security, Security Roles
Security Setting in RAD 6.0

JavaBean Wrappers (or Access Beans)
Using a JavaBean Wrapper, Anatomy of a JavaBean Wrapper

The MVC Architecture
The Controller - Servlet
The View - HTML Form Pages
The View - JavaServer Pages
Creating Access Beans using RAD 6.0

WEBSPHERE (if applicable)
WebSphere Application Server
J2EE Application Components
Enterprise Applications
Enterprise Application Hierarchy, EAR Files
Exporting EAR Files from WSAD, Web Projects
Installing an Application in WebSphere

RAD (if applicable)
RAD Application Server
J2EE Application Components
Enterprise Applications
Enterprise Application Hierarchy, EAR Files
Exporting EAR Files from RAD 6.0, Web Projects
Installing an Application in RAD

EJB 1.0
EJB 1.1
EJB 2.0

Course Format

Practical sessions make up a large part of the course, allowing delegates to demonstrate and reinforce the lectures given. During these sessions the delegate will gain experience of coding all types of EJBs as well as complete server side applications.

Examples are used extensively, ranging from simple code snippets to full applications with complete 'real world' functionality. These are supplied at the start of the course and it is encouraged that the delegates execute and 'experiment' with these under the instructor's guidance as they are introduced.

These examples are available to take away, along with the delegate's own work.

The comprehensive Student Guide supplied is fully indexed serving as a useful reference tool long after the course has finished. Delegates will also be able to access a free help-line with technical questions relating to topics covered on the course.


Course Enquiry