WA1541 EJB 3 Development With NetBeans and Sun Java System Application Server Training and Courseware Course Outline

1. 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
 

2. Introduction to NetBeans IDE

  • Objectives
  • NetBeans 5.5 IDE
  • Projects Window
  • Source Editor
  • Files Window
  • Runtime Window
  • Navigator Window
  • Output Window
  • Standard Projects
  • Free-Form Projects
  • Templates
  • Building, Running, and Debugging Projects Using Ant
  • Setting Main Project
  • Opening and Closing Projects
  • Code Completion
  • Searching
  • Setting Project’s Class Path
  • Setting Project’s Target JDK
  • Review Questions
  • Source: Use NetBeans Help Contents and product documentation (http://www.netbeans.org/kb/55/using-netbeans/project_setup.html).
 

3. 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
 

4. 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
 

5. 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
 

6. 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
 

7. 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
 

8. 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
 

9. 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
 

10. 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
 

11. 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
 

12. 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
 

13. 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
 

14. 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
  • Sun Java System Application Server EJB Deployment
  • Specify JNDI Name of a EJB
  • Specify Instance Pooling
  • Configure Resources
  • Deploying to Sun Java System Application Server
 

15. Introduction to EJB Design Patterns

  • Objectives
  • Patterns Overview
  • EJB Design Patterns
  • EJB Design Pattern
  • EJB Layer Patterns
  • Session Façade Pattern
  • Common Issues and Mistakes
  • Message Façade Pattern
  • Command Pattern
  • Common Issues and Mistakes
  • Summary
 

16. 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