Thông tin tài liệu
Mastering Enterprise
JavaBeans
™
Second Edition
Thanks for downloading this file! This is a non-printable Adobe Acrobat PDF file and represents the complete
Mastering EJB 2nd edition book.
So why did we make the PDF non-printable? For a few reasons:
1) The intention of this PDF file is to give you free access to preview the book before buying it.
2) Any book that you printed wouldn't look nice. It would be ugly, unbound, and would lack a cover.
3) It costs more money in paper and toner to print the book than to buy it!
Some people have told me that it's a bad idea to distribute this PDF, and that I will lose book sales as a result. I
think they're wrong! I think that offering the book online will show people how great the book really is, and then
they'll want to own it for themselves. So if you like this book, you can buy it right now on Amazon.com. Click here:
http://www.amazon.com/exec/obidos/ASIN/0471417114/ref%3Dase%5Ftheserversidecom/002-9677343-9350405
Also, if you're just starting to learn about EJB, you may want to check out http://www.TheServerSide.com, which is
a great web site to learn about the latest J2EE news.
You also may want to check out The Middleware Company ( http://www.middleware-company.com ), which offers
EJB training courses to take your knowledge to the next level. Click on the link above to find out more.
Thanks again, and enjoy.
-Ed Roman
John Wiley & Sons, Inc.
NEW YORK • CHICHESTER • WEINHEIM • BRISBANE • SINGAPORE • TORONTO
Wiley Computer Publishing
Ed Roman
Scott Ambler
Tyler Jewell
Mastering Enterprise
JavaBeans
™
Second Edition
Publisher: Robert Ipsen
Editor: Robert M. Elliott
Developmental Editor: Emilie Herman
Managing Editor: John Atkins
Associate New Media Editor: Brian Snapp
Text Design & Composition: MacAllister Publishing Services, LLC
Designations used by companies to distinguish their products are often claimed as trade-
marks. In all instances where John Wiley & Sons, Inc., is aware of a claim, the product
names appear in initial capital or ALL CAPITAL LETTERS. Readers, however, should con-
tact the appropriate companies for more complete information regarding trademarks and
registration.
This book is printed on acid-free paper.
Copyright © 2002 by The Middleware Company. All rights reserved.
Published by John Wiley & Sons, Inc.
Published simultaneously in Canada.
No part of this publication may be reproduced, stored in a retrieval system or transmitted
in any form or by any means, electronic, mechanical, photocopying, recording, scanning or
otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copy-
right Act, without either the prior written permission of the Publisher, or authorization
through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222
Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 750-4744. Requests to the
Publisher for permission should be addressed to the Permissions Department, John Wiley
& Sons, Inc., 605 Third Avenue, New York, NY 10158-0012, (212) 850-6011, fax (212) 850-
6008, E-Mail: permreq@wiley.com.
This publication is designed to provide accurate and authoritative information in regard to
the subject matter covered. It is sold with the understanding that the publisher is not
engaged in professional services. If professional advice or other expert assistance is
required, the services of a competent professional person should be sought.
Library of Congress Cataloging-in-Publication Data:
ISBN: 0-471-41711-4
Printed in the United States of America.
10 9 8 7 6 5 4 3 2 1
To my wonderful wife, Younhi.
—
Ed Roman
Acknowledgments xix
Preface xxi
Introduction xxv
About the Author xxxi
Part One Overview 1
Chapter 1 Overview 3
The Motivation for EJB 4
Divide and Conquer to the Extreme 5
Component Architectures 12
Introducing Enterprise JavaBeans 13
Why Java? 14
EJB as a Business Solution 14
The EJB Ecosystem 16
The Bean Provider 17
The Application Assembler 17
The EJB Deployer 18
The System Administrator 19
The Container and Server Provider 19
The Tool Vendors 20
Summary of Roles 20
The Java 2 Platform, Enterprise Edition (J2EE) 22
The J2EE Technologies 23
Summary 26
Chapter 2 EJB Fundamentals 29
Enterprise Beans 29
Types of Beans 30
Distributed Objects: The Foundation for EJB 32
Distributed Objects and Middleware 34
Explicit Middleware 34
Implicit Middleware 35
What Constitutes an Enterprise Bean? 37
The Enterprise Bean Class 37
CONTENTS
vii
The EJB Object 38
The Home Object 44
The Local Interfaces 46
Deployment Descriptors 50
Vendor-Specific Files 51
Ejb-Jar File 51
Summary of Terms 52
Summary 54
Chapter 3 Writing Your First Bean 55
How to Develop an EJB Component 55
The Remote Interface 57
The Local Interface 58
The Home Interface 58
The Local Home Interface 59
The Bean Class 62
The Deployment Descriptor 66
The Vendor-Specific Files 67
The Ejb-jar File 67
Deploying the Bean 68
The Optional EJB Client JAR file 68
Understanding How to Call Beans 69
Looking up a Home Object 70
Running the System 74
The Server-Side Output 75
The Client-Side Output 75
Implementing Component Interfaces 75
A Solution 76
Summary 77
Part Two The Triad of Beans 79
Chapter 4 Introduction to Session Beans 81
Session Bean Lifetime 81
Session Bean Subtypes 82
Stateful Session Beans 82
Stateless Session Beans 83
Special Characteristics of Stateful Session Beans 84
Achieving the Effect of Pooling with Stateful Beans 85
The Rules Governing Conversational State 86
Activation and Passivation Callbacks 87
CONTENTS
viii
Method Implementation Summary 89
A Simple Stateful Session Bean 89
Life Cycle Diagrams for Session Beans 100
Summary 103
Chapter 5 Introduction to Entity Beans 105
Persistence Concepts 105
Java Object Serialization 106
Object-Relational Mapping 106
Object Databases 109
What Is an Entity Bean? 109
About the Files that Make up an Entity Bean 112
Features of Entity Beans 112
Entity Beans Survive Failures 112
Entity Bean Instances Are a View into a Database 113
Several Entity Bean Instances May Represent the Same
Underlying Data 114
Entity Bean Instances Can Be Pooled 116
There Are Two Ways to Persist Entity Beans 118
Creation and Removal of Entity Beans 119
Entity Beans Can Be Found 121
You Can Modify Entity Bean Data without Using EJB 123
Entity Contexts 124
getEJBLocalObject() / getEJBObject() 124
getPrimaryKey() 125
Summary 126
Chapter 6 Writing Bean-Managed Persistent Entity Beans 127
Entity Bean Coding Basics 127
Finding Existing Entity Beans: ejbFind() 129
Bean-Managed Persistence Example: A Bank Account 136
Account.java 137
AccountLocal.java 138
AccountHome.java 138
AccountLocalHome.java 138
AccountPK.java 139
AccountBean.java 143
AccountException.java 156
Client.java 156
The Deployment Descriptor 156
The Container-Specific Deployment Descriptor 161
Setting up the Database 161
Running the Client Program 161
Server-Side Output 162
Client-Side Output 163
CONTENTS
ix
Putting It All Together: Walking through a BMP Entity
Bean’s Life Cycle 163
Summary 166
Chapter 7 Writing Container-Managed Persistent Entity Beans 167
Features of CMP Entity Beans 167
CMP Entity Beans Are Subclassed 167
CMP Entity Beans Have No Declared Fields 168
CMP Get/Set Methods Are Defined in the Subclass 170
CMP Entity Beans Have an Abstract Persistence Schema 172
CMP Entity Beans Have a Query Language 173
CMP Entity Beans Can Have ejbSelect() Methods 175
Implementation Guidelines for Container-Managed
Persistence 176
Container-Managed Persistence Example: A Product Line 180
Product.java 181
ProductLocal.java 182
ProductHome.java 182
ProductLocalHome.java 184
ProductPK.java 184
ProductBean.java 187
The Deployment Descriptor 191
The Container-Specific Deployment Descriptor 195
Client.java 196
Running the Client Program 196
The Life Cycle of a CMP Entity Bean 200
Summary 200
Chapter 8 Introduction to Message-Driven Beans 201
Motivation to Use Message-Driven Beans 201
The Java Message Service (JMS) 203
Messaging Domains 204
The JMS API 206
Integrating JMS with EJB 211
What Is a Message-Driven Bean? 212
Developing Message-Driven Beans 214
The Semantics 214
A Simple Example 215
Advanced Concepts 223
Message-Driven Bean Gotchas 225
Message Ordering 225
Missed ejbRemove() Calls 226
Poison Messages 228
CONTENTS
x
[...]... shift and career move for me What did Court say? Nothing profound, but simply, “You know Ed, this stuff is really what Enterprise JavaBeans is for.” xxi xxii P R E FA C E At first, I had no idea what he was talking about Enterprise JavaBeans? What’s that? Something like regular JavaBeans? Eventually, Court managed to explain to me what EJB was And once he explained it, I knew that Trilogy had to do... to use the triad of beans: entity beans, session beans, and message-driven beans We’ll cover the basics of writing each type of bean, including an example as well as detailed life cycle diagrams Chapter 4 covers session beans We’ll look at the difference between stateful and stateless session beans, how to code a session bean, and what’s going on behind-the-scenes with session beans Chapter 5 is a... to Your Beans 237 Calling Beans from Other Beans Chapter 9 236 237 238 239 Default JNDI Lookups Understanding EJB References Resource Factories 241 Environment Properties 244 Understanding EJB Security 245 246 257 266 Security Step 1: Authentication Security Step 2: Authorization Security Propagation Understanding Handles Home Handles Summary 268 269 270 Part Three Advanced Enterprise JavaBeans Concepts... let’s begin our exploration of Enterprise JavaBeans with Part 1, an introduction to EJB concepts and programming ABOUT THE AUTHOR Ed Roman is one of the world’s leading authorities on high-end middleware technologies He has been heavily involved with Sun Microsystems’ enterprise Java solutions from their inception, and has designed, built, and deployed a variety of enterprise applications, including... conceptual introduction to entity beans We’ll look at persistence concepts, what makes entity beans unique, and the files involved when building entity beans Chapter 6 covers bean-managed persistent (BMP) entity beans We’ll see how to program a BMP entity bean, and also look at what’s happening behind the scenes with BMP Chapter 7 covers container-managed persistent (CMP) entity beans We’ll focus in on the... covers message-driven beans We’ll first review the Java Message Service (JMS), which is a pre-requisite for learning message-driven beans We’ll then dive in and understand how to program with message-driven beans Chapter 9 discusses the EJB environment, along with services provided by the container This includes security, environment properties, resource factories, references between beans, and handles... Models Enlisting in Transactions with Enterprise JavaBeans Underlying Transaction System Abstraction Declarative, Programmatic, and Client-Initiated Transactions Choosing a Transaction Style Container-Managed Transactions EJB Transaction Attribute Values Programmatic Transactions in EJB CORBA’s Object Transaction Service (OTS) The Java Transaction Service (JTS) The Java Transaction API (JTA) Declarative... OVERVIEW I n Part 1, we introduce the server-side development platform that is the Java 2 Platform, Enterprise Edition (J2EE), of which the Enterprise JavaBeans (EJB) component architecture is a vital piece J2EE is a conglomeration of concepts, programming standards, and innovations—all written in the Java programming language With J2EE, you can rapidly construct distributed, scalable, reliable, and... forward for the Java community, but with that comes a myriad of concepts to learn and understand This book will teach you the concepts and techniques for authoring reusable components in Java, and it will do so from the ground up You need only to understand Java to understand this book While you’re reading this book, you may want to download the EJB specification, available on http:/ /java. sun.com Goals... together in an I NTR O D U CT I O N xxix enterprise, as well as how to connect them with clients such as Java Servlets and JavaServer Pages (JSPs) We’ll also demonstrate how to design an EJB object model using UML The Appendices are a collection of ancillary EJB topics Some developers may want to read the appendices, while some may not need to do so Appendix A teaches you Java Remote Method Invocation over . 137
AccountLocal .java 138
AccountHome .java 138
AccountLocalHome .java 138
AccountPK .java 139
AccountBean .java 143
AccountException .java 156
Client .java 156
The. Product Line 180
Product .java 181
ProductLocal .java 182
ProductHome .java 182
ProductLocalHome .java 184
ProductPK .java 184
ProductBean .java 187
The Deployment
Ngày đăng: 08/03/2014, 23:20
Xem thêm: Mastering Enterprise Java Beans pdf, Mastering Enterprise Java Beans pdf