EJB 3.0 Programming with Eclipse and JBoss Course

Course Code: IN 624
Course Abstract:

This course is an introduction to the Enterprise Java Beans (EJB 3) technology. It starts by introducing the concepts and is ideal for someone who has never programmed using EJB. The course rapidly picks up and finishes with advanced concepts that participants can use in real life to complete large scale EJB based projects. The labs are done using Eclipse 3.0 and JBoss IDE 1.6. JBoss 4 application server is used as the server runtime.

Audience:

This course is intended for intermediate to advanced Java programmers. System architects will find the advanced concepts especially beneficial in designing a framework.

Duration: 5 days
Learning Outcomes:

Upon completion of this course, the participant will be able to:
> Recognize the need for EJB
> Identify the EJB 3.0 specification at an expert level
> Learn 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 JBoss IDE

Course Topics:

Java Enterprise Edition (EE) Overview
Objectives
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
Summary
 
Introduction to JBoss Eclipse IDE
Objectives
The Eclipse Platform
JBoss Eclipse IDE 1.6.0
Views, Perspective and Editor Areas
Basic Operations with JBoss Eclipse Views and Perspectives
The Java Perspective
The Debug Perspective
Navigator View
Package Explorer
Outline View
Problems View
Tasks View
Build and Validation
Import and Export Project
Templates and Code Completion
Searching
Setup Compiler Class Path
JRE Switching
Summary
 
Enterprise JavaBeans (EJBs) Overview
Objectives
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
Summary
 
Stateless Session Beans
Objectives
Session Beans
Stateless Session Bean
Stateless Session Bean Pooling
Stateless Session Bean Examples
Stateful Session Bean
Stateful Session Bean Examples
Annotations
Stateless Session Bean Components
Example: Business Interface
Example: Bean Class
Alternative Example
Example: The Client
Business Interface Details
Bean Class Details
JNDI - Overview
Dependency Injection
Dependency Annotations
Injecting EJB References (@EJB)
Injecting EJB References (@EJB) - Field Level Injection
Injecting EJB References (@EJB) - Method Level Injection
The @Resource Annotation
Injecting Resources (@Resource) - Field Level Injection
Injecting Resources (@Resource) - Method Level Injection
A Full Example
Session Bean Lifecycle
Stateless Session Bean Lifecycle
Summary
 
Stateful Session Beans
Objectives
Stateful Session Bean
Stateful Session Bean Examples
Stateful Session Bean Components
Stateful Session Bean Example
Stateful Session Beans
Session Bean Lifecycle
Stateful Session Bean Lifecycle
Summary
 
Entities and Java Persistence API
Objectives
Data Persistence
Java Persistence API
Entities
Session Beans Vs Entities
Entities
Persisting and Retrieving Data
Entities - Example
Descriptor File META-INF/persistence.xml
Accessing Entities
Persistence Context
Working With the EntityManager Interface
Accessing Entities Using Stateless Session Beans
Updating Data
Entity Lifecycle
Life-Cycle Callbacks
Example: Internal callback
External Callback Class
Listener Class - Example
Synchronizing with Databases
Entity Lookup
EJBQL (EJB Query Language)
EJB Query Language
EJBQL: Simple examples
EJBQL: SELECT clause
EJBQL: SELECT clause
EJBQL: FROM clause
EJBQL: WHERE clause
EJBQL: WHERE clause
Using EJBQL - Dynamic Query
Using EJBQL - Named Query
Summary
 
 
Entity Relationships and Inheritance
Objectives
Java Persistence API - Recap
Entity Inheritance and Relationships
Entity Inheritance - Introduction
Mapped Superclass
Entity Inheritance Mapping Strategies
Scenario
Single Table Per Class Hierarchy
Separate Table Per Subclass
Single Table Per Concrete Entity Class
Relationships
Types of Relationships
One-to-One Example
One-to-Many
One-to-Many Example
One-to-Many Bidirectional
Many-to-Many
Many-to-Many Example
Summary
 
Message-Driven Beans
Objectives
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
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 Beans
Summary
References
 
EJB Timer Service
Objectives
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
Summary
 
Transactions
Objectives
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
Container Managed Transaction - Example
Transaction Attributes Support
Bean Managed Transaction
Bean Managed Transaction - Example
Client Managed Transaction
Transaction Isolation
Isolation Level
Summary
 
EJB Security
Objectives
Introduction
How EJB Security Works
Protecting Web Resources
Setting Method Permission
Defining Roles
Specify Methods Permission
Disable Security Check
Excludes List
Security Identity (Delegation Policy)
Programmatic EJB Security
Declaring Roles Using Annotations
Declaring Roles Using Deployment Descriptor
Summary
 
Interceptors
Objectives
Introduction
Interceptors
Internal Interceptor
Example: Internal Interceptor
External Interceptors
Default Interceptor - Example
Class-Level Interceptor - Example
Setting Class Level Interceptors
Pre & Post Processing with Interceptors - Example
Excluding Default and Class Level Interceptors
Interceptors on Lifecycle Callbacks
Summary
 
Web Service Access to EJBs
Objectives
Web Service and EJBs
Operation and Implementation
WSDL
Typical Development Workflow
Advantages of Web Services
Web Services and EJB
Web Service Clients
JAX-RPC Overview
JAX-RPC Framework
Java to XML Data Conversion
Main Goals of JAX-RPC
JAX-RPC Server
WSDL Overview
WSDL Document Tags
Web Service EJBs
Annotate The Session Bean
Annotate the Methods
Service Endpoint Interface
Package and Deploy
Summary
 
EJB Deployment
Packaging EJB JAR File
The Bean Classes
Dependent Classes
Business Interfaces
Client JAR File
The Deployment Descriptor
Basic Deployment Descriptor
Configuring a Session EJB
Configure Assembly Description
JBoss EJB Deployment
Specify JNDI Name of a EJB
Specify Instance Pooling
Configure Resources
Deploying to JBoss
 
Introduction to EJB Design Patterns
Objectives
Patterns Overview
EJB Design Patterns
EJB Design Pattern
EJB Layer Patterns
Session Faade Pattern
Common Issues and Mistakes
Message Faade Pattern
Command Pattern
Common Issues and Mistakes
Summary
 
More EJB Design Patterns
Objectives
Inter-Tier Data Transfer Patterns
Data Transfer Object Pattern
Custom Data Transfer Object Pattern
Cached RowSet Pattern
Common Mistakes and Issues
Transaction and Persistence Patterns
Version Number pattern
Version Number Pattern
Fast Lane Pattern
Read for Update Pattern
Summary

Prerequisites:

The student is expected to understand the core Java libraries; be familiar with web application programming, including servlets and JSPs.

Note: All fields are required
At the present time we do not offer training for individuals or groups less then 6 individuals. We apologize for any inconvenience.


We Value Your Privacy!

Ready to get started or in need of more information? Contact us today.

Go To Blog Virtual Learning