Sie sind auf Seite 1von 8

Title : JEEADV - Advanced Java EE Programming

Duration : 5 Days
Overview:
This course introduces students to the Enterprise JavaBeans (EJB 3.0) technology and is
ideal for those who have never programmed using EJB. This course will then take students
beyond the fundamentals of Enterprise Java Bean (EJB 3.0) programming using Eclipse. This
course covers the core concepts regarding EJB including why they are important, differences
between stateless and stateful sessions, the Java Persistence API, and the JPA Entity
Lifecycle using Eclipse. In addition, students will learn about building message-driven Beans,
EJB Security, utilising Web Services technologies like JAX-WS, and managing distributed
transactions. Students will also look at the Java Persistence Query Language (JPA QL),
entity relationships, Java Interceptors, EJB Timer service, Hibernate JPA caching, EJB design
patterns, and deployment.
Target Audience:
Students should have good Java programming knowledge and should be familiar with web
application programming, including servlets and JSPs.
Pre-requisites:
This course is for students who need to take their Java EE skills further. You MUST have
attended both our Java SE courses and the JEEINT - Introduction to Java EE
Programming course or have equivalent experience (minimum 1-2 years professional coding
experience).
Module 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
Module 2: Java EE Tools in Eclipse WTP

Eclipse Platform
Eclipse Workspace
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

Module 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
Module 4: Stateless Session Beans

Session Beans
Stateless Session Bean
Stateless Session Bean Pooling
Stateful Session Bean
Annotations
Stateless Session Bean Components
JNDI - Overview
Business Interface Details
Bean Class Details
Session Bean Lifecycle
Stateless Session Bean Lifecycle
Module 5: Stateful Session Beans

Stateful Session Bean


Stateful Session Beans

Session Bean Lifecycle


Stateful Session Bean Lifecycle
Stateful Session Bean Components
Stateful Session Bean Client
Removing the Bean

Module 6: Entities and Java Persistence API

Data Persistence
Java Persistence API
Session Beans Vs Entities
Entities
Persisting and Retrieving Data
Accessing Entities
EntityManager & Persistence Unit
Persistence Context
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
Module 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
Life-Cycle Callbacks
External Callback Class
Synchronising with Databases
Entity Lookup
JPAQL (JPA Query Language)

Module 8: References and Dependency Injection

Role of References
EJB Reference Annotations
Resource Reference Annotations
Dependency Injection
Annotation Injection

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

Module 9: Java Persistence Query Language (JPA QL)

JPA Query Language


Basic JPAQL Syntax
Simple SELECT Examples
The SELECT clause
Reading Data from Code
The WHERE Clause
Using JPAQL from Session EJB
Named Query
Multiple Named Queries
Bulk Updates
Bulk Delete
Running Native SQL Query
Native SELECT Query
Native SQL Delete and Insert
Named Native Query
Entity Relationship Overview and One-to-One
Relationship Between Entities
Anatomy of a Relationship
Foreign Key
Schema
One-to-One Unidirectional
Creating Entity Instances
Traversing the Relationship
The Cascade Behavior
One-to-One Bidirectional
Traversing the Relationship

Module 10: Complex Entity Relationships

One-To-Many and Many-To-One


Many-to-One Unidirectional
Modelling One-to-Many

Many-to-Many
Modelling Many-to-Many
Unidirectional One-to-Many
Modelling Unidirectional One-to-Many
Relationship in JPA QL
Fetching Optimisations
Lazy vs. Eager Initialisation
Lazy Initialisation
Problems with Lazy Initialisation
Fetch Join Query
Module 11: Entity Inheritance

Inheritance
Inheritance and Entities
Inheritance Strategies
Single Table Per Class Hierarchy
Pros and Cons
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
Joined Subclasses
Table Structure: Joined Subclasses
Joined Subclasses: Pros and Cons
Which Approach To Use?
Module 12: 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
Specialised Message Types

Lifecycle
Transactions
Security
Load Balancing
Clustering and Topics
Clustering and Queues
Poison Messages
Building a Response
Potential Problems
Type Checking and Messages
Testing Message-Driven Beans
Module 13: EJB Security

How EJB Security Works


Protecting Web Resources
Setting Method Permission
Defining Roles
Defining Roles Using Annotations
Specify Methods Permission
Disable Security Check
Excludes List
RunAs Security Identity
RunAs Security Identity Configuration
Programmatic EJB Security
Security Role Reference
Module 14: Web Service Access to EJB

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

Module 15: 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
Timer and Transaction
Limitations of EJB Timer Service
Module 16: Transactions

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 Settings
Interacting with Container Managed Transactions
Transaction Attributes Support
Bean Managed Transaction
Client Managed Transaction
Transaction Isolation
Isolation Level
Module 17: Interceptors

Interceptors
Internal Interceptor
External Interceptors
Setting Class Level Interceptors
Excluding Default and Class Level Interceptors
Interceptors on Lifecycle Callbacks
Module 18: 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
Module 19: Hibernate JPA Catching

Need for Caching


Factors Involved in Caching
Using Hibernate to Cache JPA Entities
Types of Hibernate JPA Cached Data
Steps to Configure Hibernate Second Level Cache
Decide JBoss Cache Configuration
Standard JBoss Cache Configurations
Configure JPA Persistence Caching Properties
Sample persistence.xml with Hibernate Caching
Configure JPA Entities to Allow Caching
Configure JPA Queries to Allow Caching
Tuning Cache Eviction

Das könnte Ihnen auch gefallen