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
      • Overview and usage

  • 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

Notice: Undefined index: printer in /var/www/datadeliverance/inc/trademarks.inc on line 11

Go to course catalogue