Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Java 2 Enterprise Edition 1.4 Bible
PREMIUM
Số trang
1011
Kích thước
12.9 MB
Định dạng
PDF
Lượt xem
1723

Java 2 Enterprise Edition 1.4 Bible

Nội dung xem thử

Mô tả chi tiết

Java™

2 Enterprise

Edition 1.4 Bible

James McGovern, Rahim Adatia, Yakov Fain,

Jason Gordon, Ethan Henry, Walter Hurst,

Ashish Jain, Mark Little, Vaidyanathan Nagarajan,

Harshad Oak, Lee Anne Phillips

a539663 FM.qxd 7/25/03 9:12 AM Page i

a539663 FM.qxd 7/25/03 9:12 AM Page i

Java™

2 Enterprise

Edition 1.4 Bible

James McGovern, Rahim Adatia, Yakov Fain,

Jason Gordon, Ethan Henry, Walter Hurst,

Ashish Jain, Mark Little, Vaidyanathan Nagarajan,

Harshad Oak, Lee Anne Phillips

a539663 FM.qxd 7/25/03 9:12 AM Page i

Java™ 2 Enterprise Edition 1.4 Bible

Published by

Wiley Publishing, Inc.

10475 Crosspoint Boulevard

Indianapolis, IN 46256

www.wiley.com

Copyright © 2003 by Wiley Publishing, Inc., Indianapolis, Indiana

Published simultaneously in Canada

ISBN: 0-7645-3966-3

Manufactured in the United States of America

10 9 8 7 6 5 4 3 2 1

1O/RS/QY/QT/IN

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 Copyright 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) 646-8700. Requests to the Publisher for permission should be addressed to the Legal Department, Wiley

Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4447, E-Mail:

[email protected].

is a trademark of Wiley Publishing, Inc.

LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: WHILE THE PUBLISHER AND AUTHOR HAVE USED THEIR BEST

EFFORTS IN PREPARING THIS BOOK, THEY MAKE NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE

ACCURACY OR COMPLETENESS OF THE CONTENTS OF THIS BOOK AND SPECIFICALLY DISCLAIM ANY IMPLIED

WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. NO WARRANTY MAY BE CREATED

OR EXTENDED BY SALES REPRESENTATIVES OR WRITTEN SALES MATERIALS. THE ADVICE AND STRATEGIES

CONTAINED HEREIN MAY NOT BE SUITABLE FOR YOUR SITUATION. YOU SHOULD CONSULT WITH A

PROFESSIONAL WHERE APPROPRIATE. NEITHER THE PUBLISHER NOR AUTHOR SHALL BE LIABLE FOR ANY LOSS

OF PROFIT OR ANY OTHER COMMERCIAL DAMAGES, INCLUDING BUT NOT LIMITED TO SPECIAL, INCIDENTAL,

CONSEQUENTIAL, OR OTHER DAMAGES.

For general information on our other products and services or to obtain technical support, please contact our Customer

Care Department within the U.S. at (800) 762-2974, outside the U.S. at (317) 572-3993 or fax (317) 572-4002.

Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in

electronic books.

Library of Congress Control Number: 2003101921

Trademarks: Wiley, the Wiley logo, and related trade dress are trademarks or registered trademarks of John Wiley & Sons,

Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. Java is a

trademark of Sun Microsystems, Inc. All other trademarks are the property of their respective owners. Wiley Publishing,

Inc., is not associated with any product or vendor mentioned in this book.

a539663 FM.qxd 7/25/03 9:12 AM Page ii

About the Authors

James McGovern is currently employed as an enterprise architect for Hartford

Financial Services. He is the coauthor of The Practical Guide to Enterprise

Architecture (Prentice Hall, 2003), Java Web Services Architecture (Morgan

Kaufmann, 2003), and Xquery — Kick Start (Sams Publishing, 2003). James has 16

years of experience in information technology. He is a member of the Java

Community Process, the IEEE, and the Worldwide Institute of Software Architects.

He holds industry certifications from Microsoft, Cisco, and Sun.

Rahim Adatia has been programming since he got his first computer — a TRS-80 —

way back in the beginning of the ’80s. Fortunately, he didn’t stagnate there and pro￾gressed on to developing large-scale enterprise architectures using C/C++, UML,

CORBA, J2EE/EJB/Java, and now C# and .NET. He has applied his more than 15

years of experience to leading implementations at Charles Schwab, Williams

Communications, Valtech, Nortel Networks, Corel Corporation, Lokah Limited, and

T-Mobile International, to name a few. Most recently, he has focused on the wireless

middleware market, where he has led product development using Web services,

J2EE, and .NET. He is also a delegate for T-Mobile International at the Open Mobile

Alliance standards body. Rahim has contributed to numerous books and articles

throughout his career, including the books Professional EJB and J#, and is actively

reviewing other titles. He can be reached at [email protected].

Yakov Fain has more than 20 years of experience in information technology and is

an experienced architect, developer, instructor, and mentor. He is the author of The

Java Tutorial for the Real World. Yakov is the principal of Smart Data Processing, Inc.

(http://www.smartdataprocessing.com), whose clients include major Wall

Street companies. He is a Sun Certified Java 2 Programmer and a Sybase Certified

Powerbuilder Developer.

Jason Gordon is a software engineer for Verizon and serves as lead for the Global

Email system team. While at Verizon he has played a variety of roles, including

systems architect for the eBusiness Technology Integration and eInfrastructure

group and key developer of the EDGE project, which helped provide a Web-based

infrastructure to facilitate the merger of Bell Atlantic and GTE into Verizon. Jason

also served as a member of Verizon’s XML-Task Force and collaborated on several

wireless and Web-services initiatives within the company. In addition to being an

active technical author, Jason also currently serves as the national technology

coordinator for the National Society of Black Engineers. He can be reached at

[email protected] or http://www.jtgordon.com.

Ethan Henry has most recently worked as the manager of training services at

Sitraka. In previous positions he was a developer, product manager, and Java evan￾gelist. He has written numerous articles for Java Report, Dr. Dobbs Journal, Java

Developers Journal, and Web Techniques. He has been a technical reviewer of

multiple books, including Enterprise Java Beans by Valesky, Java How to Program by

Dietel and Dietel, Professional JSP by Wrox, and Java Language API Superbible from

the Waite Group all the way back in 1996.

a539663 FM.qxd 7/25/03 9:12 AM Page iii

iv About the Authors

Walter Hurst is the chief technology officer and founder of Wakesoft. He is widely

recognized as a leader in the design and implementation of large-scale distributed

enterprise applications. At Wakesoft, Walter was the product architect and author

before becoming more involved in company strategy and industry leadership. He is

a frequent speaker at conferences and often writes for technical publications.

During his career he has been involved in the design, architecture, and implementa￾tion of distributed business systems for many Fortune 1000 companies as an inde￾pendent consultant and also, while at Xpedior and Andersen Consulting, Walter

received a B.S. in computer engineering from the University of Michigan. When he

needs a break from technology, Walter volunteers as a scuba diver for the Steinhart

Aquarium in San Francisco, where he cleans the shark tank.

Ashish Jain is an enterprise consultant/architect with over ten years of IT experi￾ence. He currently works for BEA Systems Professional Services. In this capacity,

Ashish assists BEA customers in designing and implementing their e-business

strategies using solutions based on J2EE. He holds several industry certifications

from SUN and BEA. He is an active member of local J2EE-user groups and a board

member of the Denver BEA-user group. He holds a degree in electronics engineering

from BITS Pilani, India.

Mark Little is Head of Transactions Technology for Arjuna Technologies Limited, a

company that spun off from Hewlett-Packard to concentrate on developing transac￾tions technologies for J2EE and Web services. Prior to this, Mark was a distin￾guished engineer/architect in HP’s Arjuna Labs in England, where he led the HP

Transaction Service and HP Web Services Transaction teams. He is one of the pri￾mary authors of the OMG Activity Service Specification. He is a member of the

expert group for the work in J2EE: JSR 95 and JSR 117, and is the specification lead

for JSR 156 (Java API for XML Transactions). Mark is active on the OTS Revision

Task Force and the OASIS Business Transactions Protocol specification. He is the

coauthor of an upcoming book, Transaction and Java for Systems Professionals

(Prentice Hall). He has been published in many industry magazines, including

Doctor Dobbs, The Java Developers Journal, the Web Services Journal,

Developer.com, and Application Development Advisor. Mark holds a Ph.D. in com￾puter science from the University of Newcastle.

Vaidyanathan Nagarajan, a.k.a Nathan, is the coauthor of a recent book, Xquery —

Kick Start (Sams Publishing). He coauthored Professional EJB for Wrox in summer of

2001. He has seven years of experience in information technology. Prior to joining

Hartford Life Insurance as an enterprise developer, he worked as a consultant to

Netscape Professional Services. He has an M.B.A. in General Management from a

leading business school in the New England area. He is a former student of the

Indian Institute of Technology, Mumbai, India. His main interests include program￾ming in Java, robotics using Lego Mindstorms, writing, reading, and cartooning. If

he is not thinking about design patterns or Java, he will be modeling a robot in his

robotic lab. He can be reached at [email protected].

a539663 FM.qxd 7/25/03 9:12 AM Page iv

About the Authors v

Harshad Oak holds a master’s degree in computer management and is a Sun

Certified Java Programmer and a Sun Certified Web Component Developer. He has

been part of several J2EE projects at i-flex Solutions and Cognizant Technology

Solutions. He is also a regular contributor of articles to developer Web sites like

http://www.builder.com.

Lee Anne Phillips has a long history in computer networking and interface design,

having created beaucoup systems-firmware and machine-language hardware-inter￾face routines before the appearance of Java and other sensible tools to relieve the

burdens of a suffering humanity. She attended the University of California at

Berkeley. Lee Anne is the author of many books and articles on computer-related

subjects, including Special Edition Using XML, Practical HTML 4, and about a fifth of

HTML 4.0 Unleashed Professional Reference Edition. An extended list may be seen on

her Web site: www.leeanne.com.

a539663 FM.qxd 7/25/03 9:12 AM Page v

Credits

Acquisitions Editor

Jim Minatel

Project Editors

Valerie H. Perry

Neil Romanosky

Mark Enochs

Technical Editor

Kunal Mittal

Copy Editor

S. B. Kleinman

Editorial Manager

Mary Beth Wakefield

Vice President & Executive Group

Publisher

Richard Swadley

Vice President and Executive

Publisher

Bob Ipsen

Vice President and Publisher

Joseph B. Wikert

Executive Editorial Director

Mary Bednarek

Project Coordinator

Kristie Rees

Graphics and Production Specialists

Beth Brooks

Jennifer Click

Sean Decker

Heather Pope

Quality Control Technicians

Laura Albert

John Greenough

Brian H.Walls

Media Development Specialist

Angela Denny

Proofreading and Indexing

TECHBOOKS Production Services

a539663 FM.qxd 7/25/03 9:12 AM Page vi

Foreword

Something about this book needs to be short, so I guess it’s going to have to be

the foreword. Seriously, though, this is a very good book. In fact, it’s the best

introduction to J2EE that I’ve seen. It’s well written, covering all the information you

need to succeed with J2EE. And it’s presented in an order that makes sense — the

chapters provide an end-to-end overview of J2EE. The book starts by showing you

how to build the frontend of your application, then describes your connectivity

options, then shows you how to build your business logic using Enterprise

JavaBeans (EJB), and finally explains how to connect to the backend databases. In

other words, this book is architecturally layered.

Why should you read this book? First, because the authors know what they’re talk￾ing about and can explain it in ways that you can understand. Second, because it

really does cover the fundamentals of J2EE incredibly well. The first five parts of

this book are oriented toward people learning to work with J2EE technology, and in

my opinion they do an incredibly good job of explaining exactly what you need to

know. Third, because the book goes beyond J2EE. Part VI is a great overview of

using Web services with J2EE, a critical issue most developers need to understand.

Part VII is a great overview of common J2EE patterns, and Part VIII covers such

important topics as performance and frameworks. In many ways this book is a

“one-stop shop” for J2EE information.

In the end the thing that I like most about this book is that it’s practical. Yes, it’s

pretty darn big, but as a result it provides a significant amount of real-world advice.

Isn’t that what good books are supposed to do?

Scott W. Ambler

Senior consultant, Ronin International, Inc. (http://www.ronin-intl.com)

Author, Agile Modeling, Agile Database Techniques

Coauthor, Mastering EJB 2/e

a539663 FM.qxd 7/25/03 9:12 AM Page vii

Acknowledgments

The process of writing a book is more time-consuming than anyone could ever

imagine. Luckily, the author team was composed of very talented people who

made the experience enjoyable. Some doubted that we could complete a book of

this magnitude on schedule without sacrificing quality. That you are reading it now

means that we were successful in our undertakings.

This book is the result of many people’s efforts. We would first like to thank our

acquisitions editor, Jim Minatel, for providing insight into the publishing industry in

general, and for allowing us to challenge the typical book-production process and

to focus on writing a good book instead of simply following a publishing formula.

The team would also like to thank Neil Romanosky for his efforts in making Wiley a

little more agile.

We would also like to acknowledge authors we have worked with in the past and

hope to work with in the future, including Sameer Tyagi, Martin Fowler, Sunil

Mathew, James Linn, Michael Stevens, Elias Jo, Vikas Sharan, John Crupi, Steven

Graham, Erich Gamma, Paul Reed, Tim Howes, Kent Beck, Jeff Sutherland, Marty

Biggs, Alistair Cockburn, Ed Roman, Nitin Narayan, Marty Biggs, Chris Caserio, Kurt

Cagle, Per Bothner, and Jeff Ryan.

To our peers in the industry who maintain a sense of speed, agility, and balance

a539663 FM.qxd 7/25/03 9:12 AM Page viii

Acknowledgments ix

James McGovern— First, I must thank my wife, Sherry, and my son, little James,

for putting up with me for the past several months while I’ve kidnapped and held

myself hostage in my dungeon (office) working on this book. I know they would

have liked to have me around more, but writing this book is something I really

needed to do. Thank you for your support.

I would like to acknowledge my Connecticut family: Daisy May, Pamela, Annika,

Demesha, Aunt Jesse, and the little doggie Pinto. Universal greetings to my Trinidad

family: Soogia, Kello Ricky (Kenrick), Robby (Kiley), Kelon, and Keifer, and to my

United Kingdom family: Nicholas, Ian, and Alex.

Finally, thanks to my father James Sr. and mother Mattie Lee, who gave me the

courage to start and the discipline to finish.

Rahim Adatia— I would like to thank James McGovern, Jim Minatel, and Mark

Enochs for all their hard work in developing this book. Thank you for your patience.

I would also like to thank the professors and colleagues I have worked with at the

University of Ottawa, Valtech (U.K. and U.S.A.!), BEA, and T-Mobile International.

Last but not least, I would like to thank my family and friends who have been there

to support and encourage me — I know that I can be difficult at times (did I say

that?). Thank you for your strength.

Yakov Fain— I’d like to thank my family — Natalia, Yuri, and David — for their love

and support. I’d also like to thank a wonderful teacher and a lovely lady, Dr. Alice S.

Koutkova, and close friends of our family, Dora and Felix Rubinchik.

Jason Gordon— I would like to thank GOD for giving me guidance and strength. I

would also like to acknowledge the following people: Abby, Jerry, Marvin, Charlie

Lindahl, Beth, Mitch, Kyle, Lisa, The Jamisons, and my entire family. A special

thanks to my Mother who has been there every time I needed her. I would like to

thank MaryKim for her encouraging words and advice. I would like to thank Lee

Felts who gave me the inspiration to write. I would like to thank Kyle for his support

and guidance. Last but not least . . . thanks to Mr. Starbucks and his friend Mr.

Caffeine! You guys are awesome!

Ethan Henry— I’d like to thank my family, especially my wonderful wife Margit, for

helping me work on this book, my colleagues at Sitraka (now Quest Software), the rest

of the author team, and the fine people at Wiley who helped pull everything together.

Walter Hurst— For all the effort required writing my chapter, I would first like to

thank my wife, Christine. This chapter is just one more instance where I had to

work hard on nights and weekends, and her cheerful support is what made it all

possible. I would also like to thank James McGovern for inviting me to write the

chapter; this book would not be possible without a lead author organizing the many

required writers, which is a task probably very akin to herding cats. The concepts

contained within this chapter I have learned indirectly from thought leaders in the

industry, directly from my time at Sage IT Partners, and even more definitely since

founding Wakesoft. There are too many individuals to list them, but they know who

they are. Thank you.

a539663 FM.qxd 7/25/03 9:12 AM Page ix

x Acknowledgments

Ashish Jain— I would like to thank my wife Nishma and our son Eshan for their

love and patience and support. I would also like to thank my colleagues at BEA,

Chris John and Bob Webster, for their useful and insightful comments.

Mark Little— I would like to thank my wife Paula and two sons, Daniel and Adam

(who was born during the writing of this book) for their support and love. They

have put up with my disappearances into the book-writing world many times over

the past few months, and I know it can’t have been easy. My entire family has given

all the effort over the many years meaning and ensured that I stayed sane. Lots of

love to Adam, who thinks his rattle and toys are far more important than Java

and J2EE!

Vaidyanathan Nagarajan— I would like to thank my wife Padma and my parents,

Nagarajan and Geetha, for encouraging me to put in my best effort in contributing

to this book. This book is dedicated to Padma, Geetha, Nagarajan, Vedham, all my

family members, and my best friends the Srinivasans (Arun and Sujata) who have

supported me in being what I am. A special mention goes to James McGovern for

giving me an opportunity to work with him and for introducing me to the world of

writing technical books. Thanks to those Asterix comics (by the time I completed

writing this book, I have collected all the Asterix collection except for one) and

Dilbert strips for making the creative juices run fresh in me every morning. I would

also like to take a moment to thank my friend and colleague, Thomas Nordlund, for

prototyping the source code for the session-authenticator pattern.

Harshad Oak— I wish to thank my father, Baba, without whose affection, support,

inspiration, and experiments at the art of cooking Indian food, nothing would have

been possible. I also wish to thank my dear sister Charu for always being there for

me, and Sangeeta for helping me with my writing and painstakingly reviewing my

work. Thanks to Jim and Mark for being a big help throughout this project and to

Laura and Stacey for playing an important part in my writing endeavors.

Lee Anne Phillips— My deepest thanks to Alison Eve Ulman, who provided needed

support and advice throughout the development of the chapter on JAAS, and to my

editors, whose tactful suggestions rarely failed to be either right on the mark or an

indication of a needed new direction for the phrase or discussion in question. Any

remaining errors or infelicitous explanations are entirely my own responsibility, the

creation of a book being a cooperative enterprise, especially this one that ulti￾mately depends on the imagination and skill of the author.

a539663 FM.qxd 7/25/03 9:12 AM Page x

Contents at a Glance

Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix

Part I: Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Chapter 1: Understanding Java and the J2EE Platform . . . . . . . . . . . . . . . . 3

Chapter 2: Reviewing XML Fundamentals . . . . . . . . . . . . . . . . . . . . . . . 17

Chapter 3: Introducing Application Servers . . . . . . . . . . . . . . . . . . . . . . 43

Chapter 4: Understanding Remote Method Invocation . . . . . . . . . . . . . . . 55

Part II: The Presentation Tier . . . . . . . . . . . . . . . . . . . . . . . . 75

Chapter 5: Studying Servlet Programming . . . . . . . . . . . . . . . . . . . . . . . 77

Chapter 6: Going Over JSP Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Chapter 7: Using JSP Tag Extensions . . . . . . . . . . . . . . . . . . . . . . . . . 143

Part III: The Enterprise Information System Tier . . . . . . . . . . . . 179

Chapter 8: Working with JavaMail . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

Chapter 9: Understanding the Java Messaging Service . . . . . . . . . . . . . . . 231

Chapter 10: Introducing Java Transactions . . . . . . . . . . . . . . . . . . . . . 255

Chapter 11: Examining JNDI and Directory Services . . . . . . . . . . . . . . . . 303

Chapter 12: Understanding Java Authentication and Authorization Services . . . 347

Chapter 13: Exploring Java Cryptography Extensions . . . . . . . . . . . . . . . 409

Part IV: The Service Tier . . . . . . . . . . . . . . . . . . . . . . . . . . 427

Chapter 14: Understanding EJB Architecture and Design . . . . . . . . . . . . . 429

Chapter 15: Explaining Session Beans and Business Logic . . . . . . . . . . . . 483

Chapter 16: Working with Entity Beans . . . . . . . . . . . . . . . . . . . . . . . . 511

Chapter 17: Using Message-Driven Beans . . . . . . . . . . . . . . . . . . . . . . 565

Part V: The Data Tier . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579

Chapter 18: Reviewing Java Database Connectivity . . . . . . . . . . . . . . . . . 581

Chapter 19: Understanding the J2EE Connector Architecture . . . . . . . . . . . 607

a539663 FM.qxd 7/25/03 9:12 AM Page xi

Part VI: Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645

Chapter 20: Introducing Web Services . . . . . . . . . . . . . . . . . . . . . . . . 647

Chapter 21: Digging Deeper into SOAP, WSDL, and UDDI . . . . . . . . . . . . . . 665

Chapter 22: Understanding J2EE Web Services . . . . . . . . . . . . . . . . . . . 711

Part VII: Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727

Chapter 23: Reviewing Presentation-Tier Patterns . . . . . . . . . . . . . . . . . 729

Chapter 24: Working with Service-Tier Patterns . . . . . . . . . . . . . . . . . . . 763

Chapter 25: Using Data-Tier Patterns . . . . . . . . . . . . . . . . . . . . . . . . . 797

Part VIII: Advanced Topics . . . . . . . . . . . . . . . . . . . . . . . . . 817

Chapter 26: Exploring Frameworks and Application Architecture . . . . . . . . 819

Chapter 27: Using ANT to Build and Deploy Applications . . . . . . . . . . . . . 857

Chapter 28: Creating High-Performance Java Applications . . . . . . . . . . . . 881

Appendix A: Airline Reservations Business Case . . . . . . . . . . . . . . . . . . 915

Appendix B: Magazine Publisher Business Case . . . . . . . . . . . . . . . . . . . 923

Appendix C: Additional Reading and References . . . . . . . . . . . . . . . . . . 927

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935

a539663 FM.qxd 7/25/03 9:12 AM Page xii

Tải ngay đi em, còn do dự, trời tối mất!