Enterprise JavaBeans, 4/e (Paperback)

Richard Monson-Haefel, Bill Burke, Sacha Labourey




The new 2.1 version of the Enterprise JavaBeans (EJB) spec extends its support for web services and the Java Web Services APIs, expands its asynchronous messaging support, adds XML Schema for deployment descriptors, and introduces a new Timer service, which allows for scheduling EJB jobs. The essential--and award winning--book on EJBs, Enterprise JavaBeans, has been completely revised and updated in this new fourth edition, to provide the real-world, nitty-gritty detail developers need to master EJB 2.1.

Previous editions of this clear and engaging introduction to EJBs were voted the "Best Java Book" by the editors and readers of Java Developer's Journal, the "Best Java Book for Experts," by JavaPro editors, and one of the Top Computer Books by Amazon.com. The fourth edition lives up to--and surpasses--the excellent reputation earned by its predecessors.

This authoritative and thorough guide includes everything that made previous editions the single must-have book for EJB developers: the authors solid grasp on the complexities of EJBs coupled with his succinct, easy-to-follow style; hundreds of clear, practical examples; adept coverage the key concepts EJBs ; and diagrams to illustrate the concepts presented. It also includes everything you need to get up to speed quickly on the changes wrought by EJB version 2.1, an architecture overview, information on resource management and primary services, design strategies, and XML deployment descriptors.

In this edition, we're adding an EJB workbook for JBoss 4.0. The workbook shows how to deploy all of the examples on the JBoss 4.0 application server. It addresses an important problem with EJB: deploying the software on a server can be extremely difficult. JBoss is an open source project that has become the most widely used J2EE application server.

Good technical authors may lay the facts before you, but great ones offer the distilled essence of their own experience and insight. Richard Monson-Haefel has provided just what Java developers need to know to harness the complexity of EJBs. What makes Monson-Haefel a master of technical authoring can be seen in his well-thought-out and logical progression of ideas, and in his examples practical, precise, usable examples, large enough to test key concepts but still small enough to be comprehensible taken apart and explained in the detail you need to deploy those principles in other situations.

If you work with EJBs--or want to--this book will earn a favored spot on your bookshelf.


Table of Contents:


Part I. The Technical Manuscript

1. Introduction
     Server-Side Components
     Distributed Object Architectures
     Component Models
     Asynchronous Messaging
     Titan Cruises: An Imaginary Business
     What's Next?

2. Architectural Overview
     The Enterprise Bean Component
     Using Enterprise Beans
     The Bean-Container Contract

3. Resource Management and the Primary Services
     Resource Management
     Primary Services
     What's Next?

4. Developing Your First Enterprise Beans
     Choosing and Setting Up an EJB Server
     Developing an Entity Bean
     Developing a Session Bean

5. The Remote and Local Client View
     Locating Beans with JNDI
     The Remote Client API
     The Local Client API

6. CMP: Basic Persistence
     The Abstract Programming Model
     The Customer EJB
     Persistence Fields
     Dependent Value Classes
     Relationship Fields

7. CMP: Entity Relationships
     The Seven Relationship Types

     Declaring EJB QL
     The Query Methods
     EJB QL Examples
     Problems with EJB QL

9. Bean-Managed Persistence
     The Remote Interface
     The Remote Home Interface
     The Primary Key
     The ShipBean
     Obtaining a Resource Connection
     Exception Handling
     The ejbCreate( ) Method
     The ejbLoad( ) and ejbStore( ) Methods
     The ejbRemove( ) Method
     The ejbFind( ) Methods
     The Deployment Descriptor

10. The Entity-Container Contract
     The Primary Key
     The Callback Methods
     ejbHome( )
     The Life Cycle of an Entity Bean

11. Session Beans
     The Stateless Session Bean
     The Life Cycle of a Stateless Session Bean
     The Stateful Session Bean
     The Life Cycle of a Stateful Session Bean

12. Message-Driven Beans
     JMS and Message-Driven Beans
     JMS-Based Message-Driven Beans
     The Life Cycle of a Message-Driven Bean
     Connector-Based Message-Driven Beans
     EJB 2.1: Message Linking

13. Timer Service
     Titan's Maintenance Timer
     Timer Service API
     Entity Bean Timers
     Stateless Session Bean Timers
     Message-Driven Bean Timers
     Final Words

14. EJB 2.1: Web Service Standards
     Web Services Overview
     XML Schema and XML Namespaces
     SOAP 1.1
     WSDL 1.1
     UDDI 2.0
     From Standards to Implementation

15. EJB 2.1 and Web Services
     Accessing Web Services with JAX-RPC
     EJB Endpoints

16. Transactions
     ACID Transactions
     Declarative Transaction Management
     Isolation and Database Locking
     Nontransactional Beans
     Explicit Transaction Management
     Exceptions and Transactions
     Transactional Stateful Session Beans

17. J2EE
     JavaServer Pages
     Web Components and EJB
     Filling in the Gaps
     Fitting the Pieces Together

18. XML Deployment Descriptors
     The ejb-jar File
     The Contents of a Deployment Descriptor
     The Document Header and Schema Declarations
     The Descriptor's Body
     Describing Enterprise Beans
     Describing Relationships
     Describing Bean Assembly

19. EJB Design in the Real World
     Pre-Design: Containers and Databases
     Should You Use EJBs?
     Wrapping Up

Part II. JBoss Workbook


1. JBoss Installation and Configuration
     About JBoss
     Installing JBoss Application Server
     A Quick Look at JBoss Internals
     Exercise Code Setup and Configuration

2. Exercises for Chapter 4
     Exercise 4.1: A Simple Entity Bean
     Exercise 4.2: A Simple Session Bean

3. Exercises for Chapter 5
     Exercise 5.1: The Remote Component Interfaces
     Exercise 5.2: The EJBObject, Handle, and Primary Key
     Exercise 5.3: The Local Component Interfaces

4. Exercises for Chapter 6
     Exercise 6.1: Basic Persistence in CMP 2.0
     Exercise 6.2: Dependent Value Classes in CMP 2.0
     Exercise 6.3: A Simple Relationship in CMP 2.0

5. Exercises for Chapter 7
     Exercise 7.1: Entity Relationships in CMP 2.0, Part 1
     Exercise 7.2: Entity Relationships in CMP 2.0, Part 2
     Exercise 7.3: Cascade Deletes in CMP 2.0

6. Exercises for Chapter 8
     Exercise 8.1: Simple EJB QL Statements
     Exercise 8.2: Complex EJB QL Statements

7. Exercises for Chapter 9
     Exercise 9.1: A BMP Entity Bean

8. Exercises for Chapter 11
     Exercise 11.1: A Stateless Session Bean
     Exercise 11.2: A Stateful Session Bean

9. Exercises for Chapter 12
     Exercise 12.1: JMS as a Resource
     Exercise 12.2: The Message-Driven Bean

10. Exercises for Chapter 13
     Exercise 13.1: EJB Timer Service

11. Exercises for Chapter 15
     Exercise 15.1: Web Services and EJB 2.1

Appendix. Database Configuration