Course Catalog
Curriculum Guides
  .NET
  Java/J2EE
  XML
Downloads
Buy Courseware
Customization
News
Authors
Technical Library
FAQ
About Object Innovations
Opportunities
Contact Us
Home

 

 

   
www.objectinnovations.com
info@objectinnovations.com
877-558-7246 (toll free)  
781-466-8012  

162.  Introduction to EJB

Rev. 3.0

 

This course is now available directly from our partner, Capstone Courseware.

This course introduces the experienced Java developer to Enterprise JavaBeans -- the Java EE standard for scalable, secure, and transactional Java components. EJB 3.0 has reinvigorated this area of Java enterprise development, with dramatic improvements in ease of use and smooth integration with servlet-based or JSF web applications. This course treats the 3.0 specification, with a few notes on 2.1 compatibility but an emphasis on doing things the 3.0 way.

 

Students get an overview of the EJB rationale and architecture, and then dive right into creating session beans and entities. The new dependency-injection features of EJB3 cause perhaps the most confusion, so we work through a chapter devoted explicitly to DI and JNDI, and basically how components find each other to make an application. We then study entities and the Java Persistence API more deeply, and get a look at message-driven beans as well.

 

LEARNING OBJECTIVES

 

·         Understand the role of EJB in the broader Java EE platform.

·         Describe the features that are implemented by an EJB container on behalf of application components.

·         Build stateless session beans as part of a service layer or SOA.

·         Build JPA entities to represent persistent data records within the Java application.

·         Develop systems of entities to manage complex data models including 1:1, 1:N, and N:N associations.

·         Manage transactional behavior of the application through declarative and programmatic techniques.

·         Invoke EJB sessions from Java web applications.

·         Use dependency injection and JNDI names to assemble complex web/EJB systems with minimal fuss and maximal flexibility.

·         Implement message-driven beans to process queued messages asynchronously.

 

Course Duration:  3 days.

 

Prerequisites: 

·         Solid Java programming skills and understanding of OO Java and Java-5.0 language features is essential. Course 103 is excellent preparation for this course.

·         Experience with developing Java web applications is very helpful for this course, but not strictly required. Course 115 on JavaServer Faces makes an excellent one-week pairing with this course.

·         Some knowledge of XML will be useful for writing the occasional deployment descriptor, but is not required. Course 501 is recommended for those who would like to get more familiar with XML before pursuing this course.

 

1.      Overview

Enterprise Applications

Containers and Objects

Three Containers

Remote Connectivity

Scalability and Availability

Security

Transaction Control

 

2.      Architecture

What is an EJB?

Types of Beans

Inversion of Control

The Bean-Type Annotations

Dependency Injection

The @EJB Annotation

Development Cycle and Roles

 

3.      Session Beans

Interface/Implementation Split

Stateful vs. Stateless

The @Stateless Annotation

Lifecycle and State Transitions

Session Context

The @Stateful Annotation

State Transitions

Singletons and Pools

 

4.      Entities

The Java Persistence API

Persistence Annotations

Configuration by Exception

ORM Annotations

The EntityManager

Acquiring and Using the EntityManager

persistence.xml

@Enumerated and @Temporal Types

 

5.      Associations

Associations, Cardinality, and Ownership

Annotations

Unidirectional vs. Bidirectional

The @Embedded Annotation

 

6.      Java Persistence Query Language

OO Query Languages

The FROM Clause and Directionality

The WHERE Clause

The SELECT Clause

Joins

Aggregates and Grouping

Ordering

 

7.      Dependency Injection

Interdependent Systems

The Factory Pattern

The Service Locator Pattern

Dependency Injection

Injection by Magic?

Injection by Type

Injection by Name

The Component Environment

Deployment Descriptors

Impact on Stateful Session Beans

JNDI

Connecting to a Remote Bean

Using mappedName

Who Can Declare Dependencies

 

8.      Message-Driven Beans (Optional)

Asynchronous Messaging

The Java Message Service

Message-Driven Beans

Message Types

Injecting JMS Queues

 

Appendix A. Learning Resources

 

Appendix B. Quick Reference: Java EE Annotations

 

System Requirements

 

Hardware – minimal:                     1 GHz, 512 meg RAM, 1 gig disk space

Hardware – recommended:           2 GHz, 1 gig RAM, 1 gig disk space

Operating system:                          Tested on Windows XP Professional.

Software:                                       All free downloadable tools.