EJB 3.0 PROGRAMMING WITH ORACLE WEBLOGIC SERVER 11G – GTJ15

Course Description

This course is an introduction to the Enterprise Java Beans (EJB 3) technology. It starts by introducing the concepts and shows how the EJB 3.0 programming model has been simplified. The course rapidly picks up and ends with advanced concepts that students can use in real life to complete large scale EJB based projects. The labs are done using Eclipse and WebLogic 11g runtime.

After completing this course, the student should be able to:

  • Understand the need for EJB
  • Understand the EJB 3.0 specification at an expert level
  • Understand how to develop, test, and deploy EJBs
  • Gain knowledge of EJB Design Patterns
  • Learn the industry secrets in EJB scalability
  • Learn how to develop all types of EJB beans using Eclipse.

^^

Duration

5 days

^^

Target Audience

This course is designed for Java programmers and web application designers who have interest in learning how to build or maintain enterprise applications based on the Java EE architecture using Eclipse tools.

^^

Course Prerequisites

Intermediate level Java programming knowledge.

Introduction to Java Using Eclipse Course – GTJ01 satisfies this requirement

^^

Suggested Follow on Courses

Please contact us for further details.

^^

Course Content

CHAPTER 1. JAVA ENTERPRISE EDITION (EE) OVERVIEW

Introduction to Java Platform

Java Community Process (JCP)

Introduction to Java EE

Why Move to Java EE

Java EE – New and Enhanced Features

Java EE Software Packaging

Java EE Technologies

CHAPTER 2. JAVA EE TOOLS IN ECLIPSE WTP

Eclipse Platform

Eclipse Workspace

Perspectives, Views & Editors

Perspectives, Views & Editors

Basic Operations with Eclipse Views and Perspectives

The Java Perspective

The Debug Perspective

Navigator View

Package Explorer

Outline View

Problems View

Eclipse Preferences

Build and Validation

Code Completion, Templates and Snippets

Searching

Configure Compiler Class Path

JRE Switching

Eclipse WTP

Java EE Perspectives

Project Explorer View

Servers View

JPA Tools

CHAPTER 3. ENTERPRISE JAVABEANS (EJBS) OVERVIEW

Need for EJBs

Distributed Computing

Distributed Transaction

Distributed Security

What are EJBs?

Main Characteristics of EJBs

EJB Remote Method Call

EJB Architecture Components

EJB Client

EJB JAR File

EJB Container

EJB Server

Enterprise JavaBeans

Session Beans

Entity Beans

Java Persistence API – Entities

Message-Driven Beans (MDBs)

EJB Specification

CHAPTER 4. STATELESS SESSION BEANS

Session Beans

Stateless Session Bean

Stateless Session Bean Pooling

Stateless Session Bean Examples

Stateful Session Bean

Stateful Session Bean Examples

Annotations

Annotations

Stateless Session Bean Components

Stateless Session Bean Components

Example: Business Interface

Example: Bean Class

Alternative Example

JNDI – Overview

Example: The Client

Business Interface Details

Bean Class Details

Session Bean Lifecycle

Stateless Session Bean Lifecycle

CHAPTER 5. STATEFUL SESSION BEANS

Stateful Session Bean

Session Bean Lifecycle

Stateful Session Bean Lifecycle

Stateful Session Bean Components

Stateful Session Bean Example

Stateful Session Bean Client

Removing the Bean

CHAPTER 6. ENTITIES AND JAVA PERSISTENCE API

Data Persistence

Java Persistence API

Entities

Session Beans Vs Entities

Entities

Persisting and Retrieving Data

Accessing Entities

EntityManager & Persistence Unit

Persistence Context

Entities – Example

persistence.xml – Hibernate Provider

persistence.xml – Open JPA Provider

persistence.xml – Toplink

Entity Instance Lifecycle

Creating EntityManager in Session EJB

Creating EntityManager in a Plain Java Class

Working With the EntityManager Interface

Transaction Basics

CHAPTER 7. JPA ENTITY LIFECYCLE

Entity Lifecycle

When is an Entity Managed or Detached?

Implementing the CRUD Pattern

Accessing Entities Using Stateless Session Beans

Inserting Data

Retrieving Data

Updating Data

Deleting Data

Merging Entities

Merging Entities (example)

Life-Cycle Callbacks

Life-Cycle Callbacks

Example: Internal callback

External Callback Class

Listener Class – Example

Synchronizing with Databases

Entity Lookup

JPAQL (JPA Query Language)

CHAPTER 8. REFERENCES AND DEPENDENCY INJECTION

Role of References

EJB Reference Annotations

Resource Reference Annotations

Dependency Injection

Annotation Injection

Example: Field Level Injection

Example: Method Level Injection

Deployment Descriptor Injection

Example: Deployment Descriptor Injection

Class Level References

Multiple References

EJB References in Deployment Descriptors

Resource References in Deployment Descriptors

Reference Lookup

EJBContext

JNDI Lookup with EJBContext

Overriding Reference Annotations

Default Reference Name

Resolving References

mappedName Attribute

Overloaded Reference Names

Reference Best Practices

CHAPTER 9. JAVA PERSISTENCE QUERY LANGUAGE (JPA QL)

JPA Query Language

Basic JPAQL Syntax

Simple SELECT Examples

Example of Using JPAQL

The SELECT clause

Reading Data from Code

The WHERE Clause

Example Using JPAQL from Session EJB

Named Query

Named Query

Multiple Named Queries

Bulk Updates

Bulk Delete

Running Native SQL Query

Native SELECT Query

Native SQL Delete and Insert

Named Native Query

CHAPTER 10. BASIC ENTITY RELATIONSHIPS

Relationship Between Entities

Anatomy of a Relationship

Foreign Key

Example Schema

One-to-One Unidirectional

Creating Entity Instances

Traversing the Relationship

The Cascade Behavior

One-to-One Bidirectional

Maintaining Bidirectional Links

Simplifying Bidirectional Links

Traversing the Relationship

CHAPTER 11. COMPLEX ENTITY RELATIONSHIPS

One-To-Many and Many-To-One

Many-to-One Unidirectional

Creating Entity Instances

Traversing the Relationship

Modeling One-to-Many

Maintaining Bidirectional Links

Creating Entity Instances

Creating Entity Instances

Traversing the Relationship

Many-to-Many

Modeling Many-to-Many

Maintaining Bidirectional Links

Creating Entity Instances

Traversing Relationship

Unidirectional One-to-Many

Modeling Unidirectional One-to-Many

Creating Entity Instances

Traversing the Relationship

Relationship in JPA QL

Fetching Optimizations

Lazy vs. Eager Initialization

Lazy Initialization

Various Problems with Lazy Initialization

Fetch Join Query

CHAPTER 12. ENTITY INHERITANCE

Inheritance

Inheritance Example

Inheritance and Entities

Inheritance Strategies

Inheritance Strategy 1: Single Table Per Class Hierarchy

Single Table Per Class Hierarchy

Table Structure: Single Table Per Class Hierarchy

Pros and Cons

Strategy 2: Table Per Concrete Class

Table Per Concrete Class

Table Per Concrete Class: JBoss Warning

Table Per Concrete Class

Table Structure: Table Per Concrete Class

Table Per Concrete Class: Pros and Cons

Strategy 3: Joined Subclasses

Joined Subclasses

Table Structure: Joined Subclasses

Joined Subclasses: Pros and Cons

Which Approach To Use?

CHAPTER 13. MESSAGE-DRIVEN BEANS

The Trouble with RMI/IIOP

Messaging to the Rescue

Messaging Features

Message-Oriented Middleware

Messaging Domains

Publish/Subscribe

Point-to-Point

Java Message Service

JMS Programming: Overview

The JMS Interfaces

Integrating JMS and EJB

Message-Driven Beans Are Different From Other EJBs

Message-Driven Beans Cannot Talk to Their Clients

Message-Driven Beans are Stateless

Durable Subscription

Message-Driven Bean Interfaces

javax.jms.MessageListener

javax.jms.Message

Specialized Message Types

Lifecycle

Message Driven Bean – Example

Message Driven Bean – Client Example (JSP)

Transactions

Security

Load Balancing

Clustering and Topics

Clustering and Queues

A Few Tips

Poison Messages

How the Programmer Can Avoid Poison Messages

How the System Administrator Can Avoid Poison Messages

Building a Response

Potential Problems

A Simple Alternative

Type Checking and Messages

Testing Message-Driven Bean

CHAPTER 14. EJB SECURITY

Introduction

How EJB Security Works

Example Security

Protecting Web Resources

Setting EJB Method Permission

Defining Roles in DD

Defining Roles in Code

Specify Role Access in DD

Specify Role Access in Code

Disable Security Check

The Excludes List

Run As Identity

Setting Run As Role

Programmatic EJB Security

Example Security API

Role Reference

CHAPTER 15. WEB SERVICE ACCESS TO EJBS

Web Services

Operation and Implementation

WSDL

Typical Development Workflow

Advantages of Web Services

Web Services and EJB

Web Service Clients

JAX-WS Overview

JAX-WS Framework

Java to XML Data Conversion

Main Goals of JAX-WS

JAX-WS Server

WSDL Overview

WSDL Document Tags

Web Service EJBs

Annotate The Session Bean

Annotate the Methods

Service Endpoint Interface

Package and Deploy

CHAPTER 16. EJB TIMER SERVICE

Container Managed Timer Service

EJB Timer Service

Interaction between Timer Service and EJB

Timer Service API

The TimerService Interface

Obtaining the Timer Service

Creating a Timer

Getting All Timers

The Timeout Callback method

The Timer Interface

Example: TimerTestBean

Timer and Transaction

Limitations of EJB Timer Service

CHAPTER 17. TRANSACTIONS IN EJB

Need for Transactions

Transactions

ACID Properties

Transaction Components

Distributed Transactions

Distributed Transaction Components – Two Phase Commit

Java Transaction API (JTA)

Object Transaction

EJB Transaction Basics

Transaction Propagation

Transaction Outcome

Container Managed Transaction

Transaction Attributes

Container Managed Transaction Settings

Interacting with Container Managed Transactions

Container Managed Transaction – Example

Transaction Attributes Support

Bean Managed Transaction

Using the JTA API

Obtaining the UserTransaction

Fine Points of Bean Managed Transaction

Client Managed Transaction

Transaction Isolation

CHAPTER 18. EJB INTERCEPTORS

Introduction to Interceptors

Internal Interceptor

Example: Internal Interceptor

External Interceptors

Default Interceptor – Example

Another Example

Class-Level Interceptor – Example

Setting Class Level Interceptors

Pre & Post Processing with Interceptors – Example

Blocking Calls to Business Method Example

Excluding Default and Class Level Interceptors

Interceptors on Lifecycle Callbacks

CHAPTER 19. EJB DEPLOYMENT

The Bean Classes

Dependent Classes

Business Interfaces

Client JAR File

The Deployment Descriptor

Basic Deployment Descriptor

Configuring a Session EJB

Configure Assembly Description

CHAPTER 20. EJB 3 DESIGN PATTERNS

Introduction

Impact of EJB Client Type

Session Façade Pattern

JPA and Session Façade Pattern

Façade Example

Message Façade Pattern

Message Façade Using Timer Service

Additional Notes About Message Façade

The Command Pattern

Implementing Command Pattern

Example Command Pattern

Data Transfer Object (DTO) Pattern

JPA Entity as DTO

Problem With JPA Entity as DTO

Version Number pattern

JPA and Version Number Pattern

Primary Key Generation

JPA and Primary Key Generation

Fast Lane Pattern

JPA and Fast Lane Pattern

^^

See more Java courses