Home > Store

Java EE 6 Tutorial, The: Advanced Topics

Register your product to gain access to bonus material or receive a coupon.

Java EE 6 Tutorial, The: Advanced Topics

eBook (Watermarked)

  • Your Price: $31.99
  • List Price: $39.99
  • Includes EPUB, MOBI, and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    MOBI MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.


  • Copyright 2013
  • Dimensions: 7" x 9-1/8"
  • Edition: 1st
  • eBook (Watermarked)
  • ISBN-10: 0-13-337693-1
  • ISBN-13: 978-0-13-337693-7

The Java EE 6 Tutorial: Advanced Topics, Fourth Edition, is a task-oriented, example-driven guide to developing enterprise applications for the Java Platform, Enterprise Edition 6 (Java EE 6). Written by members of the Java EE 6 documentation team at Oracle, this book provides new and intermediate Java programmers with a deep understanding of the platform.

This guide–which builds on the concepts introduced in The Java EE 6 Tutorial: Basic Concepts, Fourth Edition–contains advanced material, including detailed introductions to more complex platform features and instructions for using the latest version of the NetBeans IDE and the GlassFish Server, Open Source Edition.

This book introduces the Java Message Service (JMS) API and Java EE Interceptors. It also describes advanced features of JavaServer Faces, Servlets, JAX-RS, Enterprise  JavaBeans components, the Java Persistence API, Contexts and Dependency Injection for the Java EE Platform, web and enterprise application security, and Bean Validation. The book culminates with three new case studies that illustrate the use of multiple Java EE 6 APIs.

Sample Content

Table of Contents

Preface         xxi

Part I: Introduction           1

Chapter1: Overview           3

Java EE 6 Platform Highlights  4

Java EE Application Model   5

Distributed Multitiered Applications   6

Java EE Containers   13

Web Services Support   15

Java EE Application Assembly and Deployment   17

Packaging Applications   17

Development Roles   19

Java EE 6 APIs  21

Java EE 6 APIs in the Java Platform, Standard Edition 6 and 7   32

GlassFish Server Tools  35

Chapter 2: Using the Tutorial Examples           37

Required Software  37

Starting and Stopping the GlassFish Server   41

Starting the Administration Console   42

Starting and Stopping the Java DB Server   43

Building the Examples   43

Tutorial Example Directory Structure   44

Getting the Latest Updates to the Tutorial   45

Debugging Java EE Applications   45

Part II: The Web Tier           47

Chapter 3: JavaServer Faces Technology: Advanced Concepts           49

The Lifecycle of a JavaServer Faces Application   50

Partial Processing and Partial Rendering   56

The Lifecycle of a Facelets Application   56

User Interface Component Model   57

Chapter 4: Using Ajax with JavaServer Faces Technology           69

Overview of Ajax   70

Using Ajax Functionality with JavaServer Faces Technology   70

Using Ajax with Facelets   71

Sending an Ajax Request   73

Monitoring Events on the Client  75

Handling Errors   76

Receiving an Ajax Response   77

Ajax Request Lifecycle   78

Grouping of Components  78

Loading JavaScript as a Resource   79

The ajaxguessnumber  Example Application    81

Further Information about Ajax in JavaServer Faces Technology   85

Chapter 5: Composite Components: Advanced Topics and Example            87

Attributes of a Composite Component   87

Invoking a Managed Bean   88

Validating Composite Component Values   89

The compositecomponentlogin  Example Application   89

Chapter 6: Creating Custom UI Components and Other Custom Objects             95

Determining Whether You Need a Custom Component or Renderer  97

Understanding the Image Map Example   100

Steps for Creating a Custom Component   105

Creating Custom Component Classes   106

Delegating Rendering to a Renderer  114

Implementing an Event Listener   117

Handling Events for Custom Components  119

Defining the Custom Component Tag in a Tag Library Descriptor   120

Using a Custom Component  121

Creating and Using a Custom Converter   123

Creating and Using a Custom Validator  128

Binding Component Values and Instances to Managed Bean Properties 133

Binding Converters, Listeners, and Validators to Managed Bean Properties   138

Chapter 7: Configuring JavaServer Faces Applications             141

Using Annotations to Configure Managed Beans   142

Application Configuration Resource File   144

Configuring Managed Beans  146

Registering Application Messages   155

Using Default Validators   159

Registering a Custom Validator   159

Registering a Custom Converter   160

Configuring Navigation Rules  161

Registering a Custom Renderer with a Render Kit   165

Registering a Custom Component   167

Basic Requirements of a JavaServer Faces Application    168

Chapter  8: Uploading Files with Java Servlet Technology            175

The @MultipartConfigAnnotation  175

The getPartsand getPart Methods   176

The fileuploadExample Application   177

Chapter  9: Internationalizing and Localizing Web Applications            183

Java Platform Localization Classes   183

Providing Localized Messages and Labels   184

Date and Number Formatting   187

Character Sets and Encodings   188

Part III: Web Services           191

Chapter 10: JAX-RS: Advanced Topics and Example           193

Annotations for Field and Bean Properties of Resource Classes   193

Subresources and Runtime Resource Resolution   197

Integrating JAX-RS with EJB Technology and CDI   198

Conditional HTTP Requests   199

Runtime Content Negotiation   200

Using JAX-RS with JAXB   202

The customer Example Application   209

Part IV: Enterprise Beans            225

Chapter 11: A Message-Driven Bean Example           227

Overview of the simplemessage Example   227

The simplemessage Application Client   228

The Message-Driven Bean Class   229

Running the simplemessage Example   231

Chapter 12: Using the Embedded Enterprise Bean Container   235

Overview of the Embedded Enterprise Bean Container   235

Developing Embeddable Enterprise Bean Applications   236

The standalone Example Application   239

Chapter  13: Using Asynchronous Method Invocation in Session Beans            241

Asynchronous Method Invocation   241

The async Example Application   244

Part V: Contexts and Dependency Injection for the Java EE Platform           249

Chapter 14: Contexts and Dependency Injection for the Java EE Platform: Advanced Topics           251

Using Alternatives in CDI Applications   251

Using Producer Methods, Producer Fields, and Disposer Methods in CDI Applications   254

Using Predefined Beans in CDI Applications   256

Using Events in CDI Applications   257

Using Interceptors in CDI Applications   260

Using Decorators in CDI Applications   262

Using Stereotypes in CDI Applications   263

Chapter 15: Running the Advanced Contexts and Dependency Injection Examples            265

The encoder Example: Using Alternatives   265

The producermethods  Example: Using a Producer Method to Choose a Bean Implementation


The producerfields Example: Using Producer Fields to Generate Resources   273

The billpayment Example: Using Events and Interceptors   280

The decorators Example: Decorating a Bean   286

Part VI: Persistence           291

Chapter 16: Creating and Using String-Based Criteria Queries            293

Overview of String-Based Criteria API Queries   293

Creating String-Based Queries   294

Executing String-Based Queries   295

Chapter 17: Controlling Concurrent Access to Entity Data with Locking   297

Overview of Entity Locking and Concurrency   297

Lock Modes  299

Chapter 18: Using a Second-Level Cache with Java Persistence API Applications   303

Overview of the Second-Level Cache   303

Specifying the Cache Mode Settings to Improve Performance   305

Part VII: Security           309

Chapter 19: Java EE Security: Advanced Topics           311

Working with Digital Certificates   311

Authentication Mechanisms  316

Using Form-Based Login in JavaServer Faces Web Applications   321

Using the JDBC Realm for User Authentication   324

Securing HTTP Resources   328

Securing Application Clients   331

Securing Enterprise Information Systems Applications   332

Configuring Security Using Deployment Descriptors   336

Further Information about Security    337

Part VIII: Java EE Supporting Technologies            339

Chapter 20: Java Message Service Concepts            341

Overview of the JMS API  341

Basic JMS API Concepts   345

The JMS API Programming Model   348

Creating Robust JMS Applications   359

Using the JMS API in Java EE Applications   368

Further Information about JMS   376

Chapter 21: Java Message Service Examples            377

Writing Simple JMS Applications   378

Writing Robust JMS Applications  406

An Application That Uses the JMS API with a Session Bean   416

An Application That Uses the JMS API with an Entity   421

An Application Example That Consumes Messages from a Remote Server   429

An Application Example That Deploys a Message-Driven Bean on Two Servers   436

Chapter  22: Bean Validation: Advanced Topics           449

Creating Custom Constraints   449

Customizing Validator Messages   450

Grouping Constraints   451

Chapter 23: Using Java EE Interceptors           453

Overview of Interceptors   453

Using Interceptors   455

The interceptor Example Application  460

Chapter  24: The Resource Adapter Example           463

The Resource Adapter   463

The Message-Driven Bean   464

The Web Application   464

Running the mailconnector Example   465

Part IX: Case Studies           469

Chapter  25: Duke’s Bookstore Case Study Example            471

Design and Architecture of Duke’s Bookstore   471

The Duke’s Bookstore Interface   472

Running the Duke’s Bookstore Case Study Application   477

Chapter  26: Duke’s Tutoring Case Study Example           479

Design and Architecture of Duke’s Tutoring  479

Main Interface   481

Administration Interface  486

Running the Duke’s Tutoring Case Study Application          487

Chapter  27: Duke’s Forest Case Study Example           491

Design and Architecture of Duke’s Forest  492

Building and Deploying the Duke’s Forest Case Study Application   506

Running the Duke’s Forest Application   509

Index         513


Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020