type=page
status=published
title=Java Platform, Enterprise Edition The Java EE Tutorial Java Platform, Enterprise Edition, Release 8
next=title.html
~~~~~~
= Java Platform, Enterprise Edition The Java EE Tutorial Java Platform, Enterprise Edition, Release 8


[[contents]]
Contents
--------

[[title-and-copyright-information]]
link:title.html[Title and Copyright Information]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[[preface]]
link:preface.html#GEXAF[Preface]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:preface.html#CIACGIBD[Audience]
* link:preface.html#CIAHFICG[Documentation Accessibility]
* link:preface.html#BNAAC[Before You Read This Book]
* link:preface.html#GIPRL[Related Documentation]
* link:preface.html#GKVTF[Conventions]
* link:preface.html#GFIRK[Default Paths and File Names]

[[part-i-introduction]]
link:partintro.html#GFIRP[Part I Introduction]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[[overview]]
link:overview.html#BNAAW[1 Overview]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:overview001.html#A1046550[Introduction to Java EE]
* link:overview002.html#GIQVH[Java EE 8 Platform Highlights]
* link:overview003.html#BNAAX[Java EE Application Model]
* link:overview004.html#BNAAY[Distributed Multitiered Applications]

** link:overview004.html#BNABA[Security]

** link:overview004.html#BNABB[Java EE Components]

** link:overview004.html#BNABC[Java EE Clients]
*** link:overview004.html#BNABD[Web Clients]
*** link:overview004.html#BNABF[Application Clients]
*** link:overview004.html#BNABE[Applets]
*** link:overview004.html#BNABG[The JavaBeans Component Architecture]
*** link:overview004.html#BNABH[Java EE Server Communications]

** link:overview004.html#BNABJ[Web Components]

** link:overview004.html#BNABK[Business Components]

** link:overview004.html#BNABL[Enterprise Information System Tier]
* link:overview005.html#BNABO[Java EE Containers]

** link:overview005.html#BNABP[Container Services]

** link:overview005.html#BNABQ[Container Types]
* link:overview006.html#BNABS[Web Services Support]

** link:overview006.html#BNABT[XML]

** link:overview006.html#BNABU[SOAP Transport Protocol]

** link:overview006.html#BNABV[WSDL Standard Format]
* link:overview007.html#BNABX[Java EE Application Assembly and
Deployment]
* link:overview008.html#BNACJ[Java EE 8 APIs]

** link:overview008.html#BNACL[Enterprise JavaBeans Technology]

** link:overview008.html#BNACM[Java Servlet Technology]

** link:overview008.html#BNACP[JavaServer Faces Technology]

** link:overview008.html#BNACN[JavaServer Pages Technology]

** link:overview008.html#BNACO[JavaServer Pages Standard Tag Library]

** link:overview008.html#BNADB[Java Persistence API]

** link:overview008.html#BNACR[Java Transaction API]

** link:overview008.html#GIRBT[Java API for RESTful Web Services]

** link:overview008.html#GJXSD[Managed Beans]

** link:overview008.html#GJXVO[Contexts and Dependency Injection for Java
EE]

** link:overview008.html#GJXVG[Dependency Injection for Java]

** link:overview008.html#GJXTY[Bean Validation]

** link:overview008.html#BNACQ[Java Message Service API]

** link:overview008.html#BNACZ[Java EE Connector Architecture]

** link:overview008.html#BNACS[JavaMail API]

** link:overview008.html#GIRBE[Java Authorization Contract for
Containers]

** link:overview008.html#GIRGP[Java Authentication Service Provider
Interface for Containers]

** link:overview008.html#java-ee-security-api[Java EE Security API]

** link:overview008.html#CJAHDJBJ[Java API for WebSocket]

** link:overview008.html#CJAGIEEI[Java API for JSON Processing]

** link:overview008.html#java-api-for-json-binding[Java API for JSON Binding]

** link:overview008.html#CJAFGFCJ[Concurrency Utilities for Java EE]

** link:overview008.html#CJAJHGIH[Batch Applications for the Java
Platform]
* link:overview009.html#GIRDR[Java EE 8 APIs in the Java Platform,
Standard Edition 8]

** link:overview009.html#BNADA[Java Database Connectivity API]

** link:overview009.html#BNADC[Java Naming and Directory Interface API]

** link:overview009.html#BNACT[JavaBeans Activation Framework]

** link:overview009.html#BNACU[Java API for XML Processing]

** link:overview009.html#BNACW[Java Architecture for XML Binding]

** link:overview009.html#BNACV[Java API for XML Web Services]

** link:overview009.html#BNACX[SOAP with Attachments API for Java]

** link:overview009.html#BNADD[Java Authentication and Authorization
Service]

** link:overview009.html#sthref12[Common Annotations for the Java
Platform]
* link:overview010.html#BNADF[GlassFish Server Tools]

[[using-the-tutorial-examples]]
link:usingexamples.html#GFIUD[2 Using the Tutorial Examples]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:usingexamples001.html#GEXAJ[Required Software]

** link:usingexamples001.html#GEXAE[Java Platform, Standard Edition]

** link:usingexamples001.html#GEXAB[Java EE 8 Software Development Kit]
*** link:usingexamples001.html#GEXBC[SDK Installation Tips]

** link:usingexamples001.html#GEXBA[Java EE 8 Tutorial Component]

** link:usingexamples001.html#GEXAZ[NetBeans IDE]
*** link:usingexamples001.html#GJSEQ[To Install NetBeans IDE without
GlassFish Server]
*** link:usingexamples001.html#GIQZL[To Add GlassFish Server as a Server
Using NetBeans IDE]

** link:usingexamples001.html#GEXAA[Apache Maven]
* link:usingexamples002.html#BNADI[Starting and Stopping GlassFish
Server]

** link:usingexamples002.html#CHDCACDI[To Start GlassFish Server Using
NetBeans IDE]

** link:usingexamples002.html#sthref14[To Stop GlassFish Server Using
NetBeans IDE]

** link:usingexamples002.html#CHDBDDAF[To Start GlassFish Server Using
the Command Line]

** link:usingexamples002.html#sthref15[To Stop GlassFish Server Using the
Command Line]
* link:usingexamples003.html#BNADJ[Starting the Administration Console]

** link:usingexamples003.html#GJKST[To Start the Administration Console
Using NetBeans IDE]
* link:usingexamples004.html#BNADK[Starting and Stopping Apache Derby]

** link:usingexamples004.html#GJSFS[To Start the Database Server Using
NetBeans IDE]
* link:usingexamples005.html#BNAAN[Building the Examples]
* link:usingexamples006.html#GEXAP[Tutorial Example Directory Structure]
* link:usingexamples007.html#CIHBHEFF[Java EE Maven Archetypes in the
Tutorial]

** link:usingexamples007.html#CHDJGCCA[Installing the Tutorial
Archetypes]
*** link:usingexamples007.html#sthref16[Installing the Tutorial
Archetypes Using NetBeans IDE]
*** link:usingexamples007.html#sthref17[Installing the Tutorial
Archetypes Using Maven]
* link:usingexamples009.html#BNADL[Debugging Java EE Applications]

** link:usingexamples009.html#BNADM[Using the Server Log]
*** link:usingexamples009.html#GJSGH[To Use the Administration Console
Log Viewer]

** link:usingexamples009.html#BNADN[Using a Debugger]
*** link:usingexamples009.html#GJQWL[To Debug an Application Using a
Debugger]

[[part-ii-platform-basics]]
link:partplatform.html#GFIRP2[Part II Platform Basics]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[[resource-creation]]
link:resource-creation.html#GKJIQ2[3 Resource Creation]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:resource-creation001.html#BNCJI[Resources and JNDI Naming]
* link:resource-creation002.html#BNCJJ[DataSource Objects and Connection
Pools]
* link:resource-creation003.html#CACFBGBE[Creating Resources
Administratively]

[[injection]]
link:injection.html#GKJIQ3[4 Injection]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:injection001.html#BABHDCAI[Resource Injection]
* link:injection002.html#BABDJGIE[Dependency Injection]
* link:injection003.html#BABHFECJ[The Main Differences between Resource
Injection and Dependency Injection]

[[packaging]]
link:packaging.html#GKJIQ4[5 Packaging]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:packaging001.html#BCGDJDFB[Packaging Applications]
* link:packaging002.html#BCGECBIJ[Packaging Enterprise Beans]

** link:packaging002.html#CHDFCDBG[Packaging Enterprise Beans in EJB JAR
Modules]

** link:packaging002.html#CHDJABEJ[Packaging Enterprise Beans in WAR
Modules]
* link:packaging003.html#BCGHAHGD[Packaging Web Archives]
* link:packaging004.html#BCGDHBHJ[Packaging Resource Adapter Archives]

[[part-iii-the-web-tier]]
link:partwebtier.html#BNADP[Part III The Web Tier]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[[getting-started-with-web-applications]]
link:webapp.html#BNADR[6 Getting Started with Web Applications]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:webapp001.html#GEYSJ[Web Applications]
* link:webapp002.html#BNADU[Web Application Lifecycle]
* link:webapp003.html#BNADX[A Web Module That Uses JavaServer Faces
Technology: The hello1 Example]

** link:webapp003.html#GJWTV[To View the hello1 Web Module Using NetBeans
IDE]
*** link:webapp003.html#GLQLK[Introduction to Scopes]

** link:webapp003.html#BNADZ[Packaging and Deploying the hello1 Web
Module]
*** link:webapp003.html#GJRGN[To Build and Package the hello1 Web Module
Using NetBeans IDE]
*** link:webapp003.html#GJRKN[To Build and Package the hello1 Web Module
Using Maven]

** link:webapp003.html#BNAEI[Viewing Deployed Web Modules]
*** link:webapp003.html#GJSGR[To View Deployed Web Modules Using the
Administration Console]
*** link:webapp003.html#GJSEW[To View Deployed Web Modules Using the
asadmin Command]
*** link:webapp003.html#sthref24[To View Deployed Web Modules Using
NetBeans IDE]

** link:webapp003.html#BCEBEGED[Running the Deployed hello1 Web Module]
*** link:webapp003.html#BNAEM[Dynamic Reloading of Deployed Modules]

** link:webapp003.html#BNAEN[Undeploying the hello1 Web Module]
*** link:webapp003.html#GJSEJ[To Undeploy the hello1 Web Module Using
NetBeans IDE]
*** link:webapp003.html#GJSHH[To Undeploy the hello1 Web Module Using
Maven]
* link:webapp004.html#BNAEO[A Web Module That Uses Java Servlet
Technology: The hello2 Example]

** link:webapp004.html#BNAEP[Mapping URLs to Web Components]

** link:webapp004.html#GJWWG[Examining the hello2 Web Module]
*** link:webapp004.html#GJWWA[To View the hello2 Web Module Using
NetBeans IDE]

** link:webapp004.html#GKBLH[Running the hello2 Example]
*** link:webapp004.html#GJSED[To Run the hello2 Example Using NetBeans
IDE]
*** link:webapp004.html#GJSHX[To Run the hello2 Example Using Maven]
* link:webapp005.html#CHDHGJIA[Configuring Web Applications]

** link:webapp005.html#BNAES[Setting Context Parameters]
*** link:webapp005.html#GJSFJ[To Add a Context Parameter Using NetBeans
IDE]
*** link:webapp005.html#GKIHH[To Create a web.xml File Using NetBeans
IDE]

** link:webapp005.html#BNAER[Declaring Welcome Files]

** link:webapp005.html#GKBKW[Mapping Errors to Error Screens]
*** link:webapp005.html#BNAET[To Set Up Error Mapping Using NetBeans IDE]

** link:webapp005.html#BNAEU[Declaring Resource References]
*** link:webapp005.html#BNAEW[Declaring a Reference to a Resource]
*** link:webapp005.html#BNAEX[Declaring a Reference to a Web Service]
* link:webapp006.html#BNAFC[Further Information about Web Applications]

[[javaserver-faces-technology]]
link:jsf-intro.html#BNAPH[7 JavaServer Faces Technology]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jsf-intro001.html#A1073698[Introduction to JavaServer Faces
Technology]
* link:jsf-intro002.html#BNAPK[What Is a JavaServer Faces Application?]
* link:jsf-intro003.html#BNAPJ[JavaServer Faces Technology Benefits]
* link:jsf-intro004.html#GJAAM[A Simple JavaServer Faces Application]
* link:jsf-intro005.html#BNAQD[User Interface Component Model]

** link:jsf-intro005.html#BNAQE[User Interface Component Classes]

** link:jsf-intro005.html#BNAQF[Component Rendering Model]

** link:jsf-intro005.html#BNAQI[Conversion Model]

** link:jsf-intro005.html#GIREH[Event and Listener Model]

** link:jsf-intro005.html#BNAQK[Validation Model]
* link:jsf-intro006.html#BNAQL[Navigation Model]
* link:jsf-intro007.html#BNAQQ[The Lifecycle of a JavaServer Faces
Application]

** link:jsf-intro007.html#GLPRC[Overview of the JavaServer Faces
Lifecycle]

** link:jsf-intro007.html#BNAQS[Restore View Phase]

** link:jsf-intro007.html#BNAQT[Apply Request Values Phase]

** link:jsf-intro007.html#GJSBP[Process Validations Phase]

** link:jsf-intro007.html#BNAQV[Update Model Values Phase]

** link:jsf-intro007.html#BNAQW[Invoke Application Phase]

** link:jsf-intro007.html#BNAQX[Render Response Phase]
* link:jsf-intro008.html#GKNOJ[Partial Processing and Partial Rendering]
* link:jsf-intro009.html#BNAQY[Further Information about JavaServer Faces
Technology]

[[introduction-to-facelets]]
link:jsf-facelets.html#GIEPX[8 Introduction to Facelets]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jsf-facelets001.html#GIJTU[What Is Facelets?]
* link:jsf-facelets002.html#GIPRR[The Lifecycle of a Facelets
Application]
* link:jsf-facelets003.html#GIPOB[Developing a Simple Facelets
Application: The guessnumber-jsf Example Application]

** link:jsf-facelets003.html#GIQTE[Creating a Facelets Application]
*** link:jsf-facelets003.html#GIQQZ[Developing a Managed Bean]
*** link:jsf-facelets003.html#GJZPV[Creating Facelets Views]

** link:jsf-facelets003.html#GJJKC[Configuring the Application]

** link:jsf-facelets003.html#GIRGF[Running the guessnumber-jsf Facelets
Example]
*** link:jsf-facelets003.html#GJQZL[To Build, Package, and Deploy the
guessnumber-jsf Example Using NetBeans IDE]
*** link:jsf-facelets003.html#GJQYU[To Build, Package, and Deploy the
guessnumber-jsf Example Using Maven]
*** link:jsf-facelets003.html#GJQYX[To Run the guessnumber-jsf Example]
* link:jsf-facelets004.html#GIQXP[Using Facelets Templates]
* link:jsf-facelets005.html#GIQZR[Composite Components]
* link:jsf-facelets006.html#GIRGM[Web Resources]
* link:jsf-facelets007.html#BABHGBJI[Relocatable Resources]
* link:jsf-facelets008.html#BABHAHDF[Resource Library Contracts]

** link:jsf-facelets008.html#sthref32[The hello1-rlc Example Application]
*** link:jsf-facelets008.html#BABGEDEB[Configuring the hello1-rlc
Example]
*** link:jsf-facelets008.html#BABDHCFG[The Facelets Pages for the
hello1-rlc Example]
*** link:jsf-facelets008.html#BABBGFFF[To Build, Package, and Deploy the
hello1-rlc Example Using NetBeans IDE]
*** link:jsf-facelets008.html#BABJAGFB[To Build, Package, and Deploy the
hello1-rlc Example Using Maven]
*** link:jsf-facelets008.html#BABFCHEB[To Run the hello1-rlc Example]
* link:jsf-facelets009.html#BABGECCJ[HTML5-Friendly Markup]

** link:jsf-facelets009.html#sthref33[Using Pass-Through Elements]

** link:jsf-facelets009.html#sthref35[Using Pass-Through Attributes]

** link:jsf-facelets009.html#BABGGIAA[The reservation Example
Application]
*** link:jsf-facelets009.html#BABGCAHH[The Facelets Pages for the
reservation Application]
*** link:jsf-facelets009.html#BABHFCCG[The Managed Bean for the
reservation Application]
*** link:jsf-facelets009.html#BABIHHGC[To Build, Package, and Deploy the
reservation Example Using NetBeans IDE]
*** link:jsf-facelets009.html#sthref36[To Build, Package, and Deploy the
reservation Example Using Maven]
*** link:jsf-facelets009.html#sthref37[To Run the reservation Example]

[[expression-language]]
link:jsf-el.html#GJDDD[9 Expression Language]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jsf-el001.html#BNAHQ[Overview of the EL]
* link:jsf-el002.html#BNAHR[Immediate and Deferred Evaluation Syntax]

** link:jsf-el002.html#BNAHS[Immediate Evaluation]

** link:jsf-el002.html#BNAHT[Deferred Evaluation]
* link:jsf-el003.html#BNAHU[Value and Method Expressions]

** link:jsf-el003.html#BNAHV[Value Expressions]
*** link:jsf-el003.html#BNAHW[Referencing Objects]
*** link:jsf-el003.html#BNAHX[Referencing Object Properties or Collection
Elements]
*** link:jsf-el003.html#sthref38[Referencing Literals]
*** link:jsf-el003.html#GJHBZ[Parameterized Method Calls]
*** link:jsf-el003.html#BNAHY[Where Value Expressions Can Be Used]

** link:jsf-el003.html#BNAHZ[Method Expressions]

** link:jsf-el003.html#BEIHCBAH[Lambda Expressions]
* link:jsf-el004.html#CIHGABHD[Operations on Collection Objects]
* link:jsf-el005.html#BNAIK[Operators]
* link:jsf-el006.html#BNAIL[Reserved Words]
* link:jsf-el007.html#BNAIM[Examples of EL Expressions]
* link:jsf-el008.html#CIHGBBHA[Further Information about the Expression
Language]

[[using-javaserver-faces-technology-in-web-pages]]
link:jsf-page.html#BNAQZ[10 Using JavaServer Faces Technology in Web Pages]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jsf-page001.html#BNARB[Setting Up a Page]
* link:jsf-page002.html#BNARF[Adding Components to a Page Using HTML Tag
Library Tags]

** link:jsf-page002.html#BNARG[Common Component Tag Attributes]
*** link:jsf-page002.html#BNARH[The id Attribute]
*** link:jsf-page002.html#BNARI[The immediate Attribute]
*** link:jsf-page002.html#BNARJ[The rendered Attribute]
*** link:jsf-page002.html#BNARK[The style and styleClass Attributes]
*** link:jsf-page002.html#BNARL[The value and binding Attributes]

** link:jsf-page002.html#GJDGQ[Adding HTML Head and Body Tags]

** link:jsf-page002.html#BNARM[Adding a Form Component]

** link:jsf-page002.html#BNARO[Using Text Components]
*** link:jsf-page002.html#BNARR[Rendering a Field with the h:inputText
Tag]
*** link:jsf-page002.html#BNARV[Rendering a Password Field with the
h:inputSecret Tag]
*** link:jsf-page002.html#BNARS[Rendering a Label with the h:outputLabel
Tag]
*** link:jsf-page002.html#BNART[Rendering a Link with the h:outputLink
Tag]
*** link:jsf-page002.html#BNARU[Displaying a Formatted Message with the
h:outputFormat Tag]

** link:jsf-page002.html#BNARW[Using Command Component Tags for
Performing Actions and Navigation]
*** link:jsf-page002.html#BNARX[Rendering a Button with the
h:commandButton Tag]
*** link:jsf-page002.html#GKBUJ[Rendering a Link with the h:commandLink
Tag]

** link:jsf-page002.html#BNASB[Adding Graphics and Images with the
h:graphicImage Tag]

** link:jsf-page002.html#BNASC[Laying Out Components with the h:panelGrid
and h:panelGroup Tags]

** link:jsf-page002.html#BNASE[Displaying Components for Selecting One
Value]
*** link:jsf-page002.html#BNASG[Displaying a Check Box Using the
h:selectBooleanCheckbox Tag]
*** link:jsf-page002.html#BNASH[Displaying a Menu Using the
h:selectOneMenu Tag]

** link:jsf-page002.html#BNASI[Displaying Components for Selecting
Multiple Values]

** link:jsf-page002.html#BNASK[Using the f:selectItem and f:selectItems
Tags]
*** link:jsf-page002.html#BNASM[Using the f:selectItems Tag]
*** link:jsf-page002.html#BNASN[Using the f:selectItem Tag]

** link:jsf-page002.html#sthref50[Displaying the Results from Selection
Components]

** link:jsf-page002.html#BNARZ[Using Data-Bound Table Components]

** link:jsf-page002.html#BNASO[Displaying Error Messages with the
h:message and h:messages Tags]

** link:jsf-page002.html#GIQZD[Creating Bookmarkable URLs with the
h:button and h:link Tags]

** link:jsf-page002.html#GIQWQ[Using View Parameters to Configure
Bookmarkable URLs]

** link:jsf-page002.html#sthref52[The bookmarks Example Application]
*** link:jsf-page002.html#CHDIEHEB[To Build, Package, and Deploy the
bookmarks Example Using NetBeans IDE]
*** link:jsf-page002.html#CHDEFJEF[To Build, Package, and Deploy the
bookmarks Example Using Maven]
*** link:jsf-page002.html#CHDGEBCB[To Run the bookmarks Example]

** link:jsf-page002.html#GJGEP[Resource Relocation Using h:outputScript
and h:outputStylesheet Tags]
* link:jsf-page003.html#BNARC[Using Core Tags]

[[using-converters-listeners-and-validators]]
link:jsf-page-core.html#GJCUT[11 Using Converters, Listeners, and Validators]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jsf-page-core001.html#BNAST[Using the Standard Converters]

** link:jsf-page-core001.html#BNASU[Converting a Component's Value]

** link:jsf-page-core001.html#BNASV[Using DateTimeConverter]

** link:jsf-page-core001.html#BNASX[Using NumberConverter]
* link:jsf-page-core002.html#BNASZ[Registering Listeners on Components]

** link:jsf-page-core002.html#BNATA[Registering a Value-Change Listener
on a Component]

** link:jsf-page-core002.html#BNATB[Registering an Action Listener on a
Component]
* link:jsf-page-core003.html#BNATC[Using the Standard Validators]

** link:jsf-page-core003.html#BNATE[Validating a Component's Value]

** link:jsf-page-core003.html#BNATF[Using Validator Tags]
* link:jsf-page-core004.html#BNATN[Referencing a Managed Bean Method]

** link:jsf-page-core004.html#BNATP[Referencing a Method That Performs
Navigation]

** link:jsf-page-core004.html#BNATQ[Referencing a Method That Handles an
Action Event]

** link:jsf-page-core004.html#BNATR[Referencing a Method That Performs
Validation]

** link:jsf-page-core004.html#BNATS[Referencing a Method That Handles a
Value-Change Event]

[[developing-with-javaserver-faces-technology]]
link:jsf-develop.html#BNATX[12 Developing with JavaServer Faces Technology]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jsf-develop001.html#BNAQM[Managed Beans in JavaServer Faces
Technology]

** link:jsf-develop001.html#BNAQN[Creating a Managed Bean]

** link:jsf-develop001.html#BNAQP[Using the EL to Reference Managed
Beans]
* link:jsf-develop002.html#BNATY[Writing Bean Properties]

** link:jsf-develop002.html#BNATZ[Writing Properties Bound to Component
Values]
*** link:jsf-develop002.html#BNAUB[UIInput and UIOutput Properties]
*** link:jsf-develop002.html#BNAUC[UIData Properties]
*** link:jsf-develop002.html#BNAUD[UISelectBoolean Properties]
*** link:jsf-develop002.html#BNAUE[UISelectMany Properties]
*** link:jsf-develop002.html#BNAUF[UISelectOne Properties]
*** link:jsf-develop002.html#BNAUG[UISelectItem Properties]
*** link:jsf-develop002.html#BNAUH[UISelectItems Properties]

** link:jsf-develop002.html#BNAUK[Writing Properties Bound to Component
Instances]

** link:jsf-develop002.html#BNAUL[Writing Properties Bound to Converters,
Listeners, or Validators]
* link:jsf-develop003.html#BNAVB[Writing Managed Bean Methods]

** link:jsf-develop003.html#sthref68[Why Use Managed Beans]

** link:jsf-develop003.html#BNAVC[Writing a Method to Handle Navigation]

** link:jsf-develop003.html#BNAVD[Writing a Method to Handle an Action
Event]

** link:jsf-develop003.html#BNAVE[Writing a Method to Perform Validation]

** link:jsf-develop003.html#BNAVF[Writing a Method to Handle a
Value-Change Event]

[[using-ajax-with-javaserver-faces-technology]]
link:jsf-ajax.html#GKIOW[13 Using Ajax with JavaServer Faces Technology]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jsf-ajax001.html#GKIGR[Overview of Ajax]
* link:jsf-ajax002.html#GKINL[Using Ajax Functionality with JavaServer
Faces Technology]
* link:jsf-ajax003.html#GKABR[Using Ajax with Facelets]

** link:jsf-ajax003.html#GKAFN[Using the f:ajax Tag]
* link:jsf-ajax004.html#GKACE[Sending an Ajax Request]

** link:jsf-ajax004.html#GKHVT[Using the event Attribute]

** link:jsf-ajax004.html#GKHUZ[Using the execute Attribute]

** link:jsf-ajax004.html#GKHWM[Using the immediate Attribute]

** link:jsf-ajax004.html#GKHZS[Using the listener Attribute]
* link:jsf-ajax005.html#GKDDF[Monitoring Events on the Client]
* link:jsf-ajax006.html#GKDCB[Handling Errors]
* link:jsf-ajax007.html#GKDBR[Receiving an Ajax Response]
* link:jsf-ajax008.html#GKUAR[Ajax Request Lifecycle]
* link:jsf-ajax009.html#GKHYH[Grouping of Components]
* link:jsf-ajax010.html#GKAAM[Loading JavaScript as a Resource]

** link:jsf-ajax010.html#GKAFI[Using JavaScript API in a Facelets
Application]

** link:jsf-ajax010.html#GKIPX[Using the @ResourceDependency Annotation
in a Bean Class]
* link:jsf-ajax011.html#GKOKB[The ajaxguessnumber Example Application]

** link:jsf-ajax011.html#GKOIJ[The ajaxguessnumber Source Files]
*** link:jsf-ajax011.html#GKOFW[The ajaxgreeting.xhtml Facelets Page]
*** link:jsf-ajax011.html#GKOHN[The UserNumberBean Backing Bean]
*** link:jsf-ajax011.html#CHDGAIGJ[The DukesNumberBean CDI Managed Bean]

** link:jsf-ajax011.html#GKOKE[Running the ajaxguessnumber Example]
*** link:jsf-ajax011.html#GLHVU[To Build, Package, and Deploy the
ajaxguessnumber Example Using NetBeans IDE]
*** link:jsf-ajax011.html#GLHVQ[To Build, Package, and Deploy the
ajaxguessnumber Example Using Maven]
*** link:jsf-ajax011.html#GLHWE[To Run the ajaxguessnumber Example]
* link:jsf-ajax012.html#GKSDK[Further Information about Ajax in
JavaServer Faces Technology]

[[composite-components-advanced-topics-and-an-example]]
link:jsf-advanced-cc.html#GKHXA[14 Composite Components: Advanced Topics and an Example]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jsf-advanced-cc001.html#GKHWV[Attributes of a Composite Component]
* link:jsf-advanced-cc002.html#GKHUO[Invoking a Managed Bean]
* link:jsf-advanced-cc003.html#GKHWO[Validating Composite Component
Values]
* link:jsf-advanced-cc004.html#GKHVN[The compositecomponentexample
Example Application]

** link:jsf-advanced-cc004.html#GKHUU[The Composite Component File]

** link:jsf-advanced-cc004.html#GKHVX[The Using Page]

** link:jsf-advanced-cc004.html#GKHVQ[The Managed Bean]

** link:jsf-advanced-cc004.html#GLECV[Running the
compositecomponentexample Example]
*** link:jsf-advanced-cc004.html#GKHVC[To Build, Package, and Deploy the
compositecomponentexample Example Using NetBeans IDE]
*** link:jsf-advanced-cc004.html#GLEAE[To Build, Package, and Deploy the
compositecomponentexample Example Using Maven]
*** link:jsf-advanced-cc004.html#GLEEU[To Run the
compositecomponentexample Example]

[[creating-custom-ui-components-and-other-custom-objects]]
link:jsf-custom.html#BNAVG[15 Creating Custom UI Components and Other Custom Objects]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jsf-custom001.html#A1350198[Introduction to Creating Custom
Components]
* link:jsf-custom002.html#BNAVH[Determining Whether You Need a Custom
Component or Renderer]

** link:jsf-custom002.html#BNAVI[When to Use a Custom Component]

** link:jsf-custom002.html#BNAVJ[When to Use a Custom Renderer]

** link:jsf-custom002.html#BNAVK[Component, Renderer, and Tag
Combinations]
* link:jsf-custom003.html#GLPCB[Understanding the Image Map Example]

** link:jsf-custom003.html#GLPBD[Why Use JavaServer Faces Technology to
Implement an Image Map?]

** link:jsf-custom003.html#GLPEM[Understanding the Rendered HTML]

** link:jsf-custom003.html#GLPCD[Understanding the Facelets Page]

** link:jsf-custom003.html#GLPBO[Configuring Model Data]

** link:jsf-custom003.html#GLPEL[Summary of the Image Map Application
Classes]
* link:jsf-custom004.html#BNAVT[Steps for Creating a Custom Component]
* link:jsf-custom005.html#BNAVU[Creating Custom Component Classes]

** link:jsf-custom005.html#BNAVV[Specifying the Component Family]

** link:jsf-custom005.html#BNAVW[Performing Encoding]

** link:jsf-custom005.html#BNAVX[Performing Decoding]

** link:jsf-custom005.html#BNAVY[Enabling Component Properties to Accept
Expressions]

** link:jsf-custom005.html#BNAVZ[Saving and Restoring State]
* link:jsf-custom006.html#BNAWA[Delegating Rendering to a Renderer]

** link:jsf-custom006.html#BNAWB[Creating the Renderer Class]

** link:jsf-custom006.html#BNAWC[Identifying the Renderer Type]
* link:jsf-custom007.html#BNAUT[Implementing an Event Listener]

** link:jsf-custom007.html#BNAUU[Implementing Value-Change Listeners]

** link:jsf-custom007.html#BNAUV[Implementing Action Listeners]
* link:jsf-custom008.html#BNAWD[Handling Events for Custom Components]
* link:jsf-custom009.html#BNAWN[Defining the Custom Component Tag in a
Tag Library Descriptor]
* link:jsf-custom010.html#BNATT[Using a Custom Component]
* link:jsf-custom011.html#BNAUS[Creating and Using a Custom Converter]

** link:jsf-custom011.html#GLPHB[Creating a Custom Converter]

** link:jsf-custom011.html#BNATU[Using a Custom Converter]
* link:jsf-custom012.html#BNAUW[Creating and Using a Custom Validator]

** link:jsf-custom012.html#BNAUX[Implementing the Validator Interface]

** link:jsf-custom012.html#BNAUY[Specifying a Custom Tag]

** link:jsf-custom012.html#BNATV[Using a Custom Validator]
* link:jsf-custom013.html#BNATG[Binding Component Values and Instances to
Managed Bean Properties]

** link:jsf-custom013.html#BNATI[Binding a Component Value to a Property]

** link:jsf-custom013.html#BNATJ[Binding a Component Value to an Implicit
Object]

** link:jsf-custom013.html#BNATL[Binding a Component Instance to a Bean
Property]
* link:jsf-custom014.html#BNATM[Binding Converters, Listeners, and
Validators to Managed Bean Properties]

[[configuring-javaserver-faces-applications]]
link:jsf-configure.html#BNAWO[16 Configuring JavaServer Faces Applications]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jsf-configure001.html#A1352824[Introduction to Configuring
JavaServer Faces Applications]
* link:jsf-configure002.html#GIRCH[Using Annotations to Configure Managed
Beans]

** link:jsf-configure002.html#GIRCR[Using Managed Bean Scopes]
* link:jsf-configure003.html#BNAWP[Application Configuration Resource
File]

** link:jsf-configure003.html#GIREP[Configuring Eager Application-Scoped
Managed Beans]

** link:jsf-configure003.html#GIQCK[Ordering of Application Configuration
Resource Files]
* link:jsf-configure004.html#CHDGFCJF[Using Faces Flows]

** link:jsf-configure004.html#sthref81[Packaging Flows in an Application]

** link:jsf-configure004.html#sthref82[The Simplest Possible Flow: The
simple-flow Example Application]
*** link:jsf-configure004.html#sthref83[To Build, Package, and Deploy the
simple-flow Example Using NetBeans IDE]
*** link:jsf-configure004.html#sthref84[To Build, Package, and Deploy the
simple-flow Example Using Maven]
*** link:jsf-configure004.html#sthref85[To Run the simple-flow Example]

** link:jsf-configure004.html#sthref86[The checkout-module Example
Application]
*** link:jsf-configure004.html#sthref87[The Facelets Pages for the
checkout-module Example]
*** link:jsf-configure004.html#sthref88[Using a Configuration File to
Configure a Flow]
*** link:jsf-configure004.html#sthref89[Using a Java Class to Configure a
Flow]
*** link:jsf-configure004.html#sthref90[The Flow-Scoped Managed Beans]
*** link:jsf-configure004.html#sthref91[To Build, Package, and Deploy the
checkout-module Example Using NetBeans IDE]
*** link:jsf-configure004.html#sthref92[To Build, Package, and Deploy the
checkout-module Example Using Maven]
*** link:jsf-configure004.html#sthref93[To Run the checkout-module
Example]
* link:jsf-configure005.html#BNAWQ[Configuring Managed Beans]

** link:jsf-configure005.html#BNAWR[Using the managed-bean Element]

** link:jsf-configure005.html#BNAWS[Initializing Properties Using the
managed-property Element]
*** link:jsf-configure005.html#BNAWU[Referencing a Java Enum Type]
*** link:jsf-configure005.html#BNAWV[Referencing a Context Initialization
Parameter]
*** link:jsf-configure005.html#BNAWW[Initializing Map Properties]
*** link:jsf-configure005.html#BNAWX[Initializing Array and List
Properties]
*** link:jsf-configure005.html#BNAWY[Initializing Managed Bean
Properties]

** link:jsf-configure005.html#BNAXA[Initializing Maps and Lists]
* link:jsf-configure006.html#BNAXB[Registering Application Messages]

** link:jsf-configure006.html#GKUHG[Using FacesMessage to Create a
Message]

** link:jsf-configure006.html#BNASS[Referencing Error Messages]
* link:jsf-configure007.html#GIREB[Using Default Validators]
* link:jsf-configure008.html#BNAXD[Registering a Custom Validator]
* link:jsf-configure009.html#BNAXE[Registering a Custom Converter]
* link:jsf-configure010.html#BNAXF[Configuring Navigation Rules]
* link:jsf-configure011.html#BNAXH[Registering a Custom Renderer with a
Render Kit]
* link:jsf-configure012.html#BNAXI[Registering a Custom Component]
* link:jsf-configure013.html#BNAXJ[Basic Requirements of a JavaServer
Faces Application]

** link:jsf-configure013.html#BNAXK[Configuring an Application with a Web
Deployment Descriptor]
*** link:jsf-configure013.html#GLPOO[Identifying the Servlet for
Lifecycle Processing]
*** link:jsf-configure013.html#BNAXM[To Specify a Path to an Application
Configuration Resource File]
*** link:jsf-configure013.html#BNAXN[To Specify Where State Is Saved]

** link:jsf-configure013.html#GIQXL[Configuring Project Stage]

** link:jsf-configure013.html#BNAXT[Including the Classes, Pages, and
Other Resources]

[[using-websockets-with-javaserver-faces-technology]]
link:jsf-ws.html#using-websockets-with-javaserver-faces-technology[17 Using WebSockets with JavaServer Faces Technology]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jsf-ws001.html#about-websockets-in-jsf[About WebSockets in JSF]
* link:jsf-ws002.html#configuring-websockets[Configuring WebSockets]

** link:jsf-ws002.html#websocket-usage-client-side[WebSocket Usage: Client Side]
** link:jsf-ws002.html#websocket-usage-server-side[WebSocket Usage: Server Side]

* link:jsf-ws003.html#using-the-fwebsocket-tag[Using the f:websocket Tag]
* link:jsf-ws004.html#websocket-scopes-and-users[WebSocket Scopes and Users]
* link:jsf-ws005.html#conditionally-connecting-websockets[Conditionally Connecting WebSockets]

** link:jsf-ws005.html#websocket-events-server[WebSocket Events: Server]
** link:jsf-ws005.html#websocket-events-clients[WebSocket Events: Clients]

* link:jsf-ws006.html#websocket-security-considerations[WebSocket Security Considerations]
* link:jsf-ws007.html#using-ajax-with-websockets[Using Ajax With WebSockets]

[[java-servlet-technology]]
link:servlets.html#BNAFD[18 Java Servlet Technology]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:servlets001.html#BNAFE[What Is a Servlet?]
* link:servlets002.html#BNAFI[Servlet Lifecycle]

** link:servlets002.html#BNAFJ[Handling Servlet Lifecycle Events]
*** link:servlets002.html#BNAFK[Defining the Listener Class]

** link:servlets002.html#BNAFN[Handling Servlet Errors]
* link:servlets003.html#BNAFO[Sharing Information]

** link:servlets003.html#BNAFP[Using Scope Objects]

** link:servlets003.html#BNAFS[Controlling Concurrent Access to Shared
Resources]
* link:servlets004.html#BNAFU[Creating and Initializing a Servlet]
* link:servlets005.html#BNAFV[Writing Service Methods]

** link:servlets005.html#BNAFW[Getting Information from Requests]

** link:servlets005.html#BNAFZ[Constructing Responses]
* link:servlets006.html#BNAGB[Filtering Requests and Responses]

** link:servlets006.html#BNAGC[Programming Filters]

** link:servlets006.html#BNAGD[Programming Customized Requests and
Responses]

** link:servlets006.html#BNAGF[Specifying Filter Mappings]
*** link:servlets006.html#GJSLC[To Specify Filter Mappings Using NetBeans
IDE]
* link:servlets007.html#BNAGI[Invoking Other Web Resources]

** link:servlets007.html#BNAGJ[Including Other Resources in the Response]

** link:servlets007.html#BNAGK[Transferring Control to Another Web
Component]
* link:servlets008.html#BNAGL[Accessing the Web Context]
* link:servlets009.html#BNAGM[Maintaining Client State]

** link:servlets009.html#BNAGN[Accessing a Session]

** link:servlets009.html#BNAGO[Associating Objects with a Session]

** link:servlets009.html#BNAGQ[Session Management]
*** link:servlets009.html#sthref100[To Set the Timeout Period Using
NetBeans IDE]

** link:servlets009.html#BNAGR[Session Tracking]
* link:servlets010.html#BNAGS[Finalizing a Servlet]

** link:servlets010.html#BNAGT[Tracking Service Requests]

** link:servlets010.html#BNAGU[Notifying Methods to Shut Down]

** link:servlets010.html#BNAGV[Creating Polite Long-Running Methods]
* link:servlets011.html#BABFGCHB[Uploading Files with Java Servlet
Technology]

** link:servlets011.html#sthref101[The @MultipartConfig Annotation]

** link:servlets011.html#sthref102[The getParts and getPart Methods]
* link:servlets012.html#BEIGCFDF[Asynchronous Processing]

** link:servlets012.html#sthref103[Asynchronous Processing in Servlets]

** link:servlets012.html#sthref105[Waiting for a Resource]
* link:servlets013.html#BEIHICDH[Nonblocking I/O]

** link:servlets013.html#sthref109[Reading a Large HTTP POST Request
Using Nonblocking I/O]
* link:servlets014.html#BEIJHCDJ[Protocol Upgrade Processing]
* link:servlets014a.html#server-push[Server Push]
* link:servlets014b.html#http-trailer[HTTP Trailer]
* link:servlets015.html#GKCPG[The mood Example Application]

** link:servlets015.html#CHDEBFCB[Components of the mood Example
Application]

** link:servlets015.html#GKCOJ[Running the mood Example]
*** link:servlets015.html#GKCOB[To Run the mood Example Using NetBeans
IDE]
*** link:servlets015.html#GKCPJ[To Run the mood Example Using Maven]
* link:servlets016.html#BABDGFJJ[The fileupload Example Application]

** link:servlets016.html#CHDFGBGI[Architecture of the fileupload Example
Application]

** link:servlets016.html#CHDIHJCI[Running the fileupload Example]
*** link:servlets016.html#CHDGDJCI[To Build, Package, and Deploy the
fileupload Example Using NetBeans IDE]
*** link:servlets016.html#CHDCFADG[To Build, Package, and Deploy the
fileupload Example Using Maven]
*** link:servlets016.html#CHDDDAAJ[To Run the fileupload Example]
* link:servlets017.html#BEIFAIFF[The dukeetf Example Application]

** link:servlets017.html#CHDBBEDA[Architecture of the dukeetf Example
Application]
*** link:servlets017.html#sthref111[The Servlet]
*** link:servlets017.html#sthref112[The Enterprise Bean]
*** link:servlets017.html#sthref113[The HTML Page]

** link:servlets017.html#CHDHBBBI[Running the dukeetf Example
Application]
*** link:servlets017.html#CHDCGCJD[To Run the dukeetf Example Application
Using NetBeans IDE]
*** link:servlets017.html#CHDHHAFG[To Run the dukeetf Example Application
Using Maven]
* link:servlets018.html#BNAGW[Further Information about Java Servlet
Technology]

[[java-api-for-websocket]]
link:websocket.html#GKJIQ5[19 Java API for WebSocket]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:websocket001.html#BABDABHF[Introduction to WebSocket]
* link:websocket002.html#BABEAEFC[Creating WebSocket Applications in the
Java EE Platform]

** link:websocket002.html#sthref114[Creating and Deploying a WebSocket
Endpoint]
* link:websocket003.html#BABGJEIG[Programmatic Endpoints]
* link:websocket004.html#BABFEBGA[Annotated Endpoints]
* link:websocket005.html#BABFCGBJ[Sending and Receiving Messages]

** link:websocket005.html#CIHEHFCB[Sending Messages]
*** link:websocket005.html#BABIFBCG[Sending Messages to All Peers
Connected to an Endpoint]

** link:websocket005.html#CIHIDFHD[Receiving Messages]
* link:websocket006.html#BABGJCAD[Maintaining Client State]
* link:websocket007.html#BABGADFG[Using Encoders and Decoders]

** link:websocket007.html#CIHBIGBI[Implementing Encoders to Convert Java
Objects into WebSocket Messages]

** link:websocket007.html#CIHGDJFG[Implementing Decoders to Convert
WebSocket Messages into Java Objects]
* link:websocket008.html#BABEJIJI[Path Parameters]
* link:websocket009.html#BABDEJHB[Handling Errors]
* link:websocket010.html#BABJAIGH[Specifying an Endpoint Configurator
Class]
* link:websocket011.html#BABGCEHE[The dukeetf2 Example Application]

** link:websocket011.html#CIHJHJCD[Architecture of the dukeetf2 Sample
Application]
*** link:websocket011.html#sthref116[The Endpoint]
*** link:websocket011.html#sthref117[The Enterprise Bean]
*** link:websocket011.html#CIHHIEFH[The HTML Page]

** link:websocket011.html#CIHHBAIC[Running the dukeetf2 Example
Application]
*** link:websocket011.html#CIHEBIAH[To Run the dukeetf2 Example
Application Using NetBeans IDE]
*** link:websocket011.html#CIHDJCGJ[To Run the dukeetf2 Example
Application Using Maven]
* link:websocket012.html#BABCDBBC[The websocketbot Example Application]

** link:websocket012.html#CIHICIDE[Architecture of the websocketbot
Example Application]
*** link:websocket012.html#CIHDAEHF[The CDI Bean]
*** link:websocket012.html#CIHJJJHG[The WebSocket Endpoint]
*** link:websocket012.html#CIHFDGHG[The Application Messages]
*** link:websocket012.html#CIHGHHBD[The Encoder Classes]
*** link:websocket012.html#CIHHFICG[The Message Decoder]
*** link:websocket012.html#CIHGDBGF[The HTML Page]

** link:websocket012.html#CIHHJHDB[Running the websocketbot Example
Application]
*** link:websocket012.html#CIHFDDGE[To Run the websocketbot Example
Application Using NetBeans IDE]
*** link:websocket012.html#CIHEDEHB[To Run the websocketbot Example
Application Using Maven]
*** link:websocket012.html#BABDDAAG[To Test the websocketbot Example
Application]
* link:websocket013.html#BABDFIFD[Further Information about WebSocket]

[[json-processing]]
link:jsonp.html#GLRBB[20 JSON Processing]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jsonp001.html#BABEECIB[Introduction to JSON]

** link:jsonp001.html#BABGHEHG[JSON Syntax]

** link:jsonp001.html#CEGJHJAB[Uses of JSON]

** link:jsonp001.html#BABJJACI[Generating and Parsing JSON Data]
* link:jsonp002.html#BABDFHHD[JSON Processing in the Java EE Platform]
* link:jsonp003.html#BABHAHIA[Using the Object Model API]

** link:jsonp003.html#BABBHEBA[Creating an Object Model from JSON Data]

** link:jsonp003.html#BABIGIAF[Creating an Object Model from Application
Code]

** link:jsonp003.html#BABJHEHG[Navigating an Object Model]

** link:jsonp003.html#BABHEJFF[Writing an Object Model to a Stream]
* link:jsonp004.html#BABDBHIA[Using the Streaming API]

** link:jsonp004.html#BABGCHIG[Reading JSON Data Using a Parser]

** link:jsonp004.html#BABGJEEF[Writing JSON Data Using a Generator]
* link:jsonp005.html#BABCFABH[JSON in Java EE RESTful Web Services]
* link:jsonp006.html#BABEDFCG[The jsonpmodel Example Application]

** link:jsonp006.html#CEGHHCCC[Components of the jsonpmodel Example
Application]

** link:jsonp006.html#CEGEFHFH[Running the jsonpmodel Example
Application]
*** link:jsonp006.html#CEGFECCB[To Run the jsonpmodel Example Application
Using NetBeans IDE]
*** link:jsonp006.html#CEGGJBFA[To Run the jsonpmodel Example Application
Using Maven]
* link:jsonp007.html#BABBJDAC[The jsonpstreaming Example Application]

** link:jsonp007.html#CEGDBIID[Components of the jsonpstreaming Example
Application]

** link:jsonp007.html#CEGGHFIG[Running the jsonpstreaming Example
Application]
*** link:jsonp007.html#CEGJCBCG[To Run the jsonpstreaming Example
Application Using NetBeans IDE]
*** link:jsonp007.html#CEGCGDDJ[To Run the jsonpstreaming Example
Application Using Maven]
* link:jsonp008.html#BABGAAGB[Further Information about the Java API for
JSON Processing]

[[json-binding]]
link:jsonb.html#sthref120[21 JSON Binding]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jsonb001.html#json-binding-in-the-java-ee-platform[JSON Binding in the Java EE Platform]
* link:jsonb002.html#overview-of-the-json-binding-api[Overview of the JSON Binding API]
** link:jsonb002.html#creating-a-jasonb-instance[Creating a jasonb Instance]
** link:jsonb002.html#using-the-default-mapping[Using the Default Mapping]
** link:jsonb002.html#using-customizations[Using Customizations]
** link:jsonb002.html#using-annotations[Using Annotations]
* link:jsonb003.html#running-the-jsonbbasics-example-application[Running the jsonbbasics Example Application]
** link:jsonb003.html#components-of-the-jsonbbasics-example-application[Components of the jsonbbasics Example Application]
** link:jsonb003.html#running-the-jsonbbasics-example-application[Running the jsonbbasics Example Application]
* link:jsonb004.html#further-information-about-the-java-api-for-json-binding[Further Information about the Java API for JSON Binding]

[[internationalizing-and-localizing-web-applications]]
link:webi18n.html#BNAXU[22 Internationalizing and Localizing Web Applications]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:webi18n001.html#BNAXV[Java Platform Localization Classes]
* link:webi18n002.html#BNAXW[Providing Localized Messages and Labels]

** link:webi18n002.html#GKUIA[Establishing the Locale]

** link:webi18n002.html#BNAXY[Setting the Resource Bundle]

** link:webi18n002.html#GKUFC[Retrieving Localized Messages]
* link:webi18n003.html#BNAYA[Date and Number Formatting]
* link:webi18n004.html#BNAYB[Character Sets and Encodings]

** link:webi18n004.html#BNAYC[Character Sets]

** link:webi18n004.html#BNAYD[Character Encoding]

[[part-iv-bean-validation]]
link:partbeanvalidation.html#sthref1322[Part IV Bean Validation]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[[introduction-to-bean-validation]]
link:bean-validation.html#CHDGJIIA[23 Introduction to Bean Validation]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:bean-validation001.html#A1101988[Overview of Bean Validation]
* link:bean-validation002.html#GIRCZ[Using Bean Validation Constraints]
* link:bean-validation003.html#GKCRG[Validating Null and Empty Strings]
* link:bean-validation004.html#CACJIBEJ[Validating Constructors and
Methods]

** link:bean-validation004.html#sthref122[Cross-Parameter Constraints]

** link:bean-validation004.html#sthref123[Identifying Parameter
Constraint Violations]

** link:bean-validation004.html#sthref124[Adding Constraints to Method
Return Values]
* link:bean-validation005.html#CACDECFE[Further Information about Bean
Validation]

[[bean-validation-advanced-topics]]
link:bean-validation-advanced.html#GKAHP[24 Bean Validation: Advanced Topics]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:bean-validation-advanced001.html#GKFGX[Creating Custom
Constraints]

** link:bean-validation-advanced001.html#GKAIA[Using the Built-In
Constraints to Make a New Constraint]

** link:bean-validation-advanced001.html#CIHCICAI[Removing Ambiguity in
Constraint Targets]
* link:bean-validation-advanced002.html#GKAHI[Customizing Validator
Messages]

** link:bean-validation-advanced002.html#GKAGY[The ValidationMessages
Resource Bundle]
*** link:bean-validation-advanced002.html#GKAIQ[Localizing Validation
Messages]
* link:bean-validation-advanced003.html#GKAGV[Grouping Constraints]

** link:bean-validation-advanced003.html#GKAGU[Customizing Group
Validation Order]
* link:bean-validation-advanced004.html#CIHGJBGI[Using Method Constraints
in Type Hierarchies]

** link:bean-validation-advanced004.html#sthref125[Rules for Using Method
Constraints in Type Hierarchies]

[[part-v-contexts-and-dependency-injection-for-java-ee]]
link:partcdi.html#GJBNR[Part V Contexts and Dependency Injection for Java EE]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[[introduction-to-contexts-and-dependency-injection-for-java-ee]]
link:cdi-basic.html#GIWHB[25 Introduction to Contexts and Dependency Injection for Java EE]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:cdi-basic001.html#BABJDJGA[Getting Started]
* link:cdi-basic002.html#GIWHL[Overview of CDI]
* link:cdi-basic003.html#GJEBJ[About Beans]
* link:cdi-basic004.html#GJFZI[About CDI Managed Beans]
* link:cdi-basic005.html#GIZKS[Beans as Injectable Objects]
* link:cdi-basic006.html#GJBCK[Using Qualifiers]
* link:cdi-basic007.html#GJBAN[Injecting Beans]
* link:cdi-basic008.html#GJBBK[Using Scopes]
* link:cdi-basic009.html#GJBAK[Giving Beans EL Names]
* link:cdi-basic010.html#GJBBP[Adding Setter and Getter Methods]
* link:cdi-basic011.html#GJBBU[Using a Managed Bean in a Facelets Page]
* link:cdi-basic012.html#GJDID[Injecting Objects by Using Producer
Methods]
* link:cdi-basic013.html#GJBNZ[Configuring a CDI Application]
* link:cdi-basic014.html#BABJFEAI[Using the @PostConstruct and
@PreDestroy Annotations with CDI Managed Bean Classes]

** link:cdi-basic014.html#CIHEHHCH[To Initialize a Managed Bean Using the
@PostConstruct Annotation]

** link:cdi-basic014.html#CIHBAFAC[To Prepare for the Destruction of a
Managed Bean Using the @PreDestroy Annotation]
* link:cdi-basic015.html#GIWEL[Further Information about CDI]

[[running-the-basic-contexts-and-dependency-injection-examples]]
link:cdi-basicexamples.html#GJBLS[26 Running the Basic Contexts and Dependency Injection Examples]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:cdi-basicexamples001.html#A1250045[Building and Running the CDI
Samples]
* link:cdi-basicexamples002.html#GJBJU[The simplegreeting CDI Example]

** link:cdi-basicexamples002.html#GJCQS[The simplegreeting Source Files]

** link:cdi-basicexamples002.html#GJDOJ[The Facelets Template and Page]

** link:cdi-basicexamples002.html#GJCYM[Running the simplegreeting
Example]
*** link:cdi-basicexamples002.html#GJCXP[To Build, Package, and Run the
simplegreeting Example Using NetBeans IDE]
*** link:cdi-basicexamples002.html#GJCZT[To Build, Package, and Deploy
the simplegreeting Example Using Maven]
*** link:cdi-basicexamples002.html#GJCZE[To Run the simplegreeting
Example]
* link:cdi-basicexamples003.html#GJCXV[The guessnumber-cdi CDI Example]

** link:cdi-basicexamples003.html#GJDJU[The guessnumber-cdi Source Files]
*** link:cdi-basicexamples003.html#GJDJP[The @MaxNumber and @Random
Qualifier Interfaces]
*** link:cdi-basicexamples003.html#GJDJN[The Generator Managed Bean]
*** link:cdi-basicexamples003.html#GJDHY[The UserNumberBean Managed Bean]

** link:cdi-basicexamples003.html#GJDON[The Facelets Page]

** link:cdi-basicexamples003.html#GJDPW[Running the guessnumber-cdi
Example]
*** link:cdi-basicexamples003.html#GJDPS[To Build, Package, and Deploy
the guessnumber-cdi Example Using NetBeans IDE]
*** link:cdi-basicexamples003.html#GJDPR[To Build, Package, and Deploy
the guessnumber-cdi Example Using Maven]
*** link:cdi-basicexamples003.html#GJDQB[To Run the guessnumber Example]

[[contexts-and-dependency-injection-for-java-ee-advanced-topics]]
link:cdi-adv.html#GJEHI[27 Contexts and Dependency Injection for Java EE: Advanced Topics]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:cdi-adv001.html#CACDCFDE[Packaging CDI Applications]
* link:cdi-adv002.html#GJSDF[Using Alternatives in CDI Applications]

** link:cdi-adv002.html#GKHPO[Using Specialization]
* link:cdi-adv003.html#GKGKV[Using Producer Methods, Producer Fields, and
Disposer Methods in CDI Applications]

** link:cdi-adv003.html#sthref127[Using Producer Methods]

** link:cdi-adv003.html#sthref128[Using Producer Fields to Generate
Resources]

** link:cdi-adv003.html#sthref129[Using a Disposer Method]
* link:cdi-adv004.html#CJGHGDBA[Using Predefined Beans in CDI
Applications]
* link:cdi-adv005.html#GKHIC[Using Events in CDI Applications]

** link:cdi-adv005.html#GKHHY[Defining Events]

** link:cdi-adv005.html#GKHNF[Using Observer Methods to Handle Events]

** link:cdi-adv005.html#GKHIH[Firing Events]
* link:cdi-adv006.html#GKHJX[Using Interceptors in CDI Applications]
* link:cdi-adv007.html#GKHQF[Using Decorators in CDI Applications]
* link:cdi-adv008.html#GKHQC[Using Stereotypes in CDI Applications]
* link:cdi-adv009.html#using-the-built-in-annotation-literals[Using the Built-In Annotation Literals]
* link:cdi-adv009.html#using-the-configurators-interfaces[Using the Configurators Interfaces]

[[bootstrapping-a-cdi-container-in-java-se]]
link:cdi-bootstrap-se8.html#bootstrapping-a-cdi-container-in-java-se[28 Bootstrapping a CDI Container in Java SE]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:cdi-bootstrap-se8001.html#the-bootstrap-api[The Bootstrap API]
* link:cdi-bootstrap-se8002#configuring-the-cdi-container[Configuring the CDI Container]

[[running-the-advanced-contexts-and-dependency-injection-examples]]
link:cdi-adv-examples.html#GKHRE[29 Running the Advanced Contexts and Dependency Injection Examples]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:cdi-adv-examples001.html#A1251406[Building and Running the CDI
Advanced Examples]
* link:cdi-adv-examples002.html#GKHPU[The encoder Example: Using
Alternatives]

** link:cdi-adv-examples002.html#GKHQA[The Coder Interface and
Implementations]

** link:cdi-adv-examples002.html#GKHPM[The encoder Facelets Page and
Managed Bean]

** link:cdi-adv-examples002.html#GKHQQ[Running the encoder Example]
*** link:cdi-adv-examples002.html#GKHOW[To Build, Package, and Deploy the
encoder Example Using NetBeans IDE]
*** link:cdi-adv-examples002.html#GKHQU[To Run the encoder Example Using
NetBeans IDE]
*** link:cdi-adv-examples002.html#GKHQL[To Build, Package, and Deploy the
encoder Example Using Maven]
*** link:cdi-adv-examples002.html#GKHOL[To Run the encoder Example Using
Maven]
* link:cdi-adv-examples003.html#GKHPY[The producermethods Example: Using
a Producer Method to Choose a Bean Implementation]

** link:cdi-adv-examples003.html#GKHRO[Components of the producermethods
Example]

** link:cdi-adv-examples003.html#GKHQE[Running the producermethods
Example]
*** link:cdi-adv-examples003.html#GKHPE[To Build, Package, and Deploy the
producermethods Example Using NetBeans IDE]
*** link:cdi-adv-examples003.html#GKHPS[To Build, Package, and Deploy the
producermethods Example Using Maven]
*** link:cdi-adv-examples003.html#GKHQG[To Run the producermethods
Example]
* link:cdi-adv-examples004.html#GKHRG[The producerfields Example: Using
Producer Fields to Generate Resources]

** link:cdi-adv-examples004.html#GKHPP[The Producer Field for the
producerfields Example]

** link:cdi-adv-examples004.html#GKHPD[The producerfields Entity and
Session Bean]

** link:cdi-adv-examples004.html#GKHPF[The producerfields Facelets Pages
and Managed Bean]

** link:cdi-adv-examples004.html#GKHRH[Running the producerfields
Example]
*** link:cdi-adv-examples004.html#GKHPB[To Build, Package, and Deploy the
producerfields Example Using NetBeans IDE]
*** link:cdi-adv-examples004.html#GKHRM[To Build, Package, and Deploy the
producerfields Example Using Maven]
*** link:cdi-adv-examples004.html#GKHRR[To Run the producerfields
Example]
* link:cdi-adv-examples005.html#GKHPA[The billpayment Example: Using
Events and Interceptors]

** link:cdi-adv-examples005.html#CHDIBGDF[Overview of the billpayment
Example]

** link:cdi-adv-examples005.html#GKHOK[The PaymentEvent Event Class]

** link:cdi-adv-examples005.html#GKHRB[The PaymentHandler Event Listener]

** link:cdi-adv-examples005.html#GKHRJ[The billpayment Facelets Pages and
Managed Bean]

** link:cdi-adv-examples005.html#GKHRQ[The LoggedInterceptor Interceptor
Class]

** link:cdi-adv-examples005.html#GKHPK[Running the billpayment Example]
*** link:cdi-adv-examples005.html#GKHQS[To Build, Package, and Deploy the
billpayment Example Using NetBeans IDE]
*** link:cdi-adv-examples005.html#GKHPX[To Build, Package, and Deploy the
billpayment Example Using Maven]
*** link:cdi-adv-examples005.html#GKHPT[To Run the billpayment Example]
* link:cdi-adv-examples006.html#GKPAX[The decorators Example: Decorating
a Bean]

** link:cdi-adv-examples006.html#CHDDDFCI[Overview of the decorators
Example]

** link:cdi-adv-examples006.html#GKPAQ[Components of the decorators
Example]

** link:cdi-adv-examples006.html#GKPBK[Running the decorators Example]
*** link:cdi-adv-examples006.html#GKPAG[To Build, Package, and Deploy the
decorators Example Using NetBeans IDE]
*** link:cdi-adv-examples006.html#GKPAJ[To Build, Package, and Deploy the
decorators Example Using Maven]
*** link:cdi-adv-examples006.html#GKPAN[To Run the decorators Example]

[[part-vi-web-services]]
link:partwebsvcs.html#BNAYK[Part VI Web Services]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[[introduction-to-web-services]]
link:webservices-intro.html#GIJTI[30 Introduction to Web Services]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:webservices-intro001.html#GIJVH[What Are Web Services?]
* link:webservices-intro002.html#GIQSX[Types of Web Services]

** link:webservices-intro002.html#GKCDG["Big" Web Services]

** link:webservices-intro002.html#GKCAW[RESTful Web Services]
* link:webservices-intro003.html#GJBJI[Deciding Which Type of Web Service
to Use]

[[building-web-services-with-jax-ws]]
link:jaxws.html#BNAYL[31 Building Web Services with JAX-WS]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jaxws001.html#A1250966[Overview of Java API for XML Web Services]
* link:jaxws002.html#BNAYN[Creating a Simple Web Service and Clients with
JAX-WS]

** link:jaxws002.html#sthref133[Basic Steps for Creating a Web Service
and Client]

** link:jaxws002.html#BNAYP[Requirements of a JAX-WS Endpoint]

** link:jaxws002.html#BNAYQ[Coding the Service Endpoint Implementation
Class]

** link:jaxws002.html#BNAYR[Building, Packaging, and Deploying the
Service]
*** link:jaxws002.html#BNAYS[To Build, Package, and Deploy the Service
Using NetBeans IDE]
*** link:jaxws002.html#BNAYT[To Build, Package, and Deploy the Service
Using Maven]

** link:jaxws002.html#GKAJL[Testing the Methods of a Web Service
Endpoint]
*** link:jaxws002.html#BNAYW[To Test the Service without a Client]

** link:jaxws002.html#BNAYX[A Simple JAX-WS Application Client]
*** link:jaxws002.html#BNAYY[Coding the Application Client]
*** link:jaxws002.html#BNAYZ[Running the Application Client]

** link:jaxws002.html#GJYGB[A Simple JAX-WS Web Client]
*** link:jaxws002.html#GJYFL[Coding the Servlet]
*** link:jaxws002.html#GJYGE[Running the Web Client]
* link:jaxws003.html#BNAZC[Types Supported by JAX-WS]

** link:jaxws003.html#BNAZT[Schema-to-Java Mapping]

** link:jaxws003.html#BNAZW[Java-to-Schema Mapping]
* link:jaxws004.html#BNAZD[Web Services Interoperability and JAX-WS]
* link:jaxws005.html#BNAZE[Further Information about JAX-WS]

[[building-restful-web-services-with-jax-rs]]
link:jaxrs.html#GIEPU[32 Building RESTful Web Services with JAX-RS]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jaxrs001.html#GIJQY[What Are RESTful Web Services?]
* link:jaxrs002.html#GILIK[Creating a RESTful Root Resource Class]

** link:jaxrs002.html#GILRU[Developing RESTful Web Services with JAX-RS]

** link:jaxrs002.html#GILQB[Overview of a JAX-RS Application]

** link:jaxrs002.html#GINPW[The @Path Annotation and URI Path Templates]

** link:jaxrs002.html#GIPYS[Responding to HTTP Methods and Requests]
*** link:jaxrs002.html#GIPXS[The Request Method Designator Annotations]
*** link:jaxrs002.html#GIPZE[Using Entity Providers to Map HTTP Response
and Request Entity Bodies]

** link:jaxrs002.html#GIPZH[Using @Consumes and @Produces to Customize
Requests and Responses]
*** link:jaxrs002.html#GIPXF[The @Produces Annotation]
*** link:jaxrs002.html#GIPYT[The @Consumes Annotation]

** link:jaxrs002.html#GIPYW[Extracting Request Parameters]

** link:jaxrs002.html#CIHEGAGI[Configuring JAX-RS Applications]
*** link:jaxrs002.html#CIHFEBJF[Configuring a JAX-RS Application Using a
Subclass of Application]
*** link:jaxrs002.html#CIHDHAIJ[Configuring the Base URI in web.xml]
* link:jaxrs003.html#GIPZZ[Example Applications for JAX-RS]

** link:jaxrs003.html#GIPYZ[Creating a Simple RESTful Web Service]
*** link:jaxrs003.html#GIQAA[To Create a RESTful Web Service Using
NetBeans IDE]

** link:jaxrs003.html#GJVBC[The rsvp Example Application]
*** link:jaxrs003.html#GJVAW[Components of the rsvp Example Application]
*** link:jaxrs003.html#GKCCA[Running the rsvp Example Application]

** link:jaxrs003.html#GIRCI[Real-World Examples]
* link:jaxrs004.html#GILIZ[Further Information about JAX-RS]

[[accessing-rest-resources-with-the-jax-rs-client-api]]
link:jaxrs-client.html#BABEIGIH[33 Accessing REST Resources with the JAX-RS Client API]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jaxrs-client001.html#BABBIHEJ[Overview of the Client API]

** link:jaxrs-client001.html#CHDFCABB[Creating a Basic Client Request
Using the Client API]

** link:jaxrs-client001.html#CHDHBFHJ[Obtaining the Client Instance]

** link:jaxrs-client001.html#CHDDCICC[Setting the Client Target]

** link:jaxrs-client001.html#CHDDBFCG[Setting Path Parameters in Targets]

** link:jaxrs-client001.html#CHDEFCDB[Invoking the Request]
* link:jaxrs-client002.html#BABJCIJC[Using the Client API in the JAX-RS
Example Applications]

** link:jaxrs-client002.html#BABEDFIG[The Client API in the rsvp Example
Application]

** link:jaxrs-client002.html#CHDGBGID[The Client API in the customer
Example Application]
* link:jaxrs-client003.html#BABCDDGH[Advanced Features of the Client API]

** link:jaxrs-client003.html#CHDGBBCC[Configuring the Client Request]
*** link:jaxrs-client003.html#CHDHAFBG[Setting Message Headers in the
Client Request]
*** link:jaxrs-client003.html#CHDHFFDJ[Setting Cookies in the Client
Request]
*** link:jaxrs-client003.html#CHDJEFID[Adding Filters to the Client]

** link:jaxrs-client003.html#CHDEBIGG[Asynchronous Invocations in the
Client API]
*** link:jaxrs-client003.html#sthref140[Using Custom Callbacks in
Asynchronous Invocations]
*** link:jaxrs-client003.html#sthref141[Using Reactive Approach in
Asynchronous Invocations]

** link:jaxrs-client003.html#sthref142[Using Server-Sent Events]

** link:jaxrs-client003.html#sthref143[Overview of the SSE API]

** link:jaxrs-client003.html#sthref144[Broadcasting Using SSE]

** link:jaxrs-client003.html#sthref145[Listening and Receiving Events]

[[jax-rs-advanced-topics-and-an-example]]
link:jaxrs-advanced.html#GJJXE[34 JAX-RS: Advanced Topics and an Example]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jaxrs-advanced001.html#GKKRB[Annotations for Field and Bean
Properties of Resource Classes]

** link:jaxrs-advanced001.html#GKKYA[Extracting Path Parameters]

** link:jaxrs-advanced001.html#GKKXJ[Extracting Query Parameters]

** link:jaxrs-advanced001.html#GKKYC[Extracting Form Data]

** link:jaxrs-advanced001.html#GKLCQ[Extracting the Java Type of a
Request or Response]
* link:jaxrs-advanced002.html#BABCJEDF[Validating Resource Data with Bean
Validation]

** link:jaxrs-advanced002.html#CIHJAFGI[Using Constraint Annotations on
Resource Methods]

** link:jaxrs-advanced002.html#CIHFDCBI[Validating Entity Data]

** link:jaxrs-advanced002.html#CIHCHEFH[Validation Exception Handling and
Response Codes]
* link:jaxrs-advanced003.html#GKNAV[Subresources and Runtime Resource
Resolution]

** link:jaxrs-advanced003.html#GKLAG[Subresource Methods]

** link:jaxrs-advanced003.html#GKRHR[Subresource Locators]
* link:jaxrs-advanced004.html#GKNCY[Integrating JAX-RS with EJB
Technology and CDI]
* link:jaxrs-advanced005.html#GKQDA[Conditional HTTP Requests]
* link:jaxrs-advanced006.html#GKQBQ[Runtime Content Negotiation]
* link:jaxrs-advanced007.html#GKKNJ[Using JAX-RS with JAXB]

** link:jaxrs-advanced007.html#sthref147[Using Java Objects to Model Your
Data]

** link:jaxrs-advanced007.html#sthref148[Starting from an Existing XML
Schema Definition]

** link:jaxrs-advanced007.html#sthref149[Using JSON with JAX-RS and JAXB]
* link:jaxrs-advanced008.html#GKOIB[The customer Example Application]

** link:jaxrs-advanced008.html#GKOFO[Overview of the customer Example
Application]

** link:jaxrs-advanced008.html#CIHJFEJI[The Customer and Address Entity
Classes]

** link:jaxrs-advanced008.html#GKLGT[The CustomerService Class]

** link:jaxrs-advanced008.html#GKQJQ[Using the JAX-RS Client in the
CustomerBean Classes]

** link:jaxrs-advanced008.html#GKQKV[Running the customer Example]
*** link:jaxrs-advanced008.html#GKQLY[To Build, Package, and Deploy the
customer Example Using NetBeans IDE]
*** link:jaxrs-advanced008.html#GKQJV[To Build, Package, and Deploy the
customer Example Using Maven]

[[part-vii-enterprise-beans]]
link:partentbeans.html#BNBLR[Part VII Enterprise Beans]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[[enterprise-beans]]
link:ejb-intro.html#GIJSZ[35 Enterprise Beans]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:ejb-intro001.html#GIPMB[What Is an Enterprise Bean?]

** link:ejb-intro001.html#GIPLK[Benefits of Enterprise Beans]

** link:ejb-intro001.html#GIPKN[When to Use Enterprise Beans]

** link:ejb-intro001.html#GIPNM[Types of Enterprise Beans]
* link:ejb-intro002.html#GIPJG[What Is a Session Bean?]

** link:ejb-intro002.html#GIPKR[Types of Session Beans]
*** link:ejb-intro002.html#GIPNL[Stateful Session Beans]
*** link:ejb-intro002.html#GIPIN[Stateless Session Beans]
*** link:ejb-intro002.html#GIPIM[Singleton Session Beans]

** link:ejb-intro002.html#GIPMT[When to Use Session Beans]
* link:ejb-intro003.html#GIPKO[What Is a Message-Driven Bean?]

** link:ejb-intro003.html#GIPMJ[What Makes Message-Driven Beans Different
from Session Beans?]

** link:ejb-intro003.html#GIPJX[When to Use Message-Driven Beans]
* link:ejb-intro004.html#GIPJF[Accessing Enterprise Beans]

** link:ejb-intro004.html#GIRFL[Using Enterprise Beans in Clients]
*** link:ejb-intro004.html#GIRGN[Portable JNDI Syntax]

** link:ejb-intro004.html#GIPIZ[Deciding on Remote or Local Access]

** link:ejb-intro004.html#GIPMZ[Local Clients]
*** link:ejb-intro004.html#GIPSC[Accessing Local Enterprise Beans Using
the No-Interface View]
*** link:ejb-intro004.html#GIPSE[Accessing Local Enterprise Beans That
Implement Business Interfaces]

** link:ejb-intro004.html#GIPIU[Remote Clients]

** link:ejb-intro004.html#GIPKD[Web Service Clients]

** link:ejb-intro004.html#GIPLY[Method Parameters and Access]
*** link:ejb-intro004.html#GIPLX[Isolation]
*** link:ejb-intro004.html#GIPKV[Granularity of Accessed Data]
* link:ejb-intro005.html#GIPIO[The Contents of an Enterprise Bean]
* link:ejb-intro006.html#GIPKS[Naming Conventions for Enterprise Beans]
* link:ejb-intro007.html#GIPLJ[The Lifecycles of Enterprise Beans]

** link:ejb-intro007.html#GIPLN[The Lifecycle of a Stateful Session Bean]

** link:ejb-intro007.html#GIPLM[The Lifecycle of a Stateless Session
Bean]

** link:ejb-intro007.html#GIPRX[The Lifecycle of a Singleton Session
Bean]

** link:ejb-intro007.html#GIPKW[The Lifecycle of a Message-Driven Bean]
* link:ejb-intro008.html#GIPLG[Further Information about Enterprise
Beans]

[[getting-started-with-enterprise-beans]]
link:ejb-gettingstarted.html#GIJRE[36 Getting Started with Enterprise Beans]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:ejb-gettingstarted001.html#A1249349[Starting With Enterprise
Beans]
* link:ejb-gettingstarted002.html#GIPSS[Creating the Enterprise Bean]

** link:ejb-gettingstarted002.html#GIPSX[Coding the Enterprise Bean
Class]

** link:ejb-gettingstarted002.html#GIPSI[Creating the converter Web
Client]

** link:ejb-gettingstarted002.html#GIPVV[Running the converter Example]
*** link:ejb-gettingstarted002.html#GIPUM[To Run the converter Example
Using NetBeans IDE]
*** link:ejb-gettingstarted002.html#GIPVQ[To Run the converter Example
Using Maven]
* link:ejb-gettingstarted003.html#GIPTI[Modifying the Java EE
Application]

** link:ejb-gettingstarted003.html#GIPUK[To Modify a Class File]

[[running-the-enterprise-bean-examples]]
link:ejb-basicexamples.html#GIJRB[37 Running the Enterprise Bean Examples]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:ejb-basicexamples001.html#A1250776[Overview of the EJB Examples]
* link:ejb-basicexamples002.html#BNBOD[The cart Example]

** link:ejb-basicexamples002.html#BNBOE[The Business Interface]

** link:ejb-basicexamples002.html#BNBOF[Session Bean Class]
*** link:ejb-basicexamples002.html#BNBOG[Lifecycle Callback Methods]
*** link:ejb-basicexamples002.html#BNBOH[Business Methods]

** link:ejb-basicexamples002.html#BNBOI[The @Remove Method]

** link:ejb-basicexamples002.html#BNBOJ[Helper Classes]

** link:ejb-basicexamples002.html#BNBOK[Running the cart Example]
*** link:ejb-basicexamples002.html#BNBOL[To Run the cart Example Using
NetBeans IDE]
*** link:ejb-basicexamples002.html#BNBON[To Run the cart Example Using
Maven]
* link:ejb-basicexamples003.html#GIPVI[A Singleton Session Bean Example:
counter]

** link:ejb-basicexamples003.html#GIPVC[Creating a Singleton Session
Bean]
*** link:ejb-basicexamples003.html#GIPPQ[Initializing Singleton Session
Beans]
*** link:ejb-basicexamples003.html#GIPSZ[Managing Concurrent Access in a
Singleton Session Bean]
*** link:ejb-basicexamples003.html#GIPVD[Handling Errors in a Singleton
Session Bean]

** link:ejb-basicexamples003.html#GIPXL[The Architecture of the counter
Example]

** link:ejb-basicexamples003.html#GIPVL[Running the counter Example]
*** link:ejb-basicexamples003.html#GIPXT[To Run the counter Example Using
NetBeans IDE]
*** link:ejb-basicexamples003.html#GIPZW[To Run the counter Example Using
Maven]
* link:ejb-basicexamples004.html#BNBOR[A Web Service Example:
helloservice]

** link:ejb-basicexamples004.html#BNBOS[The Web Service Endpoint
Implementation Class]

** link:ejb-basicexamples004.html#BNBOT[Stateless Session Bean
Implementation Class]

** link:ejb-basicexamples004.html#BNBOU[Running the helloservice Example]
*** link:ejb-basicexamples004.html#BNBOV[To Build, Package, and Deploy
the helloservice Example Using NetBeans IDE]
*** link:ejb-basicexamples004.html#BNBOW[To Build, Package, and Deploy
the helloservice Example Using Maven]
*** link:ejb-basicexamples004.html#BNBOX[To Test the Service without a
Client]
* link:ejb-basicexamples005.html#BNBOY[Using the Timer Service]

** link:ejb-basicexamples005.html#GIQLK[Creating Calendar-Based Timer
Expressions]
*** link:ejb-basicexamples005.html#GIQMX[Specifying Multiple Values in
Calendar Expressions]

** link:ejb-basicexamples005.html#GIQLT[Programmatic Timers]
*** link:ejb-basicexamples005.html#BNBOZ[The @Timeout Method]
*** link:ejb-basicexamples005.html#BNBPA[Creating Programmatic Timers]

** link:ejb-basicexamples005.html#GIQMB[Automatic Timers]

** link:ejb-basicexamples005.html#BNBPB[Canceling and Saving Timers]

** link:ejb-basicexamples005.html#BNBPC[Getting Timer Information]

** link:ejb-basicexamples005.html#BNBPD[Transactions and Timers]

** link:ejb-basicexamples005.html#BNBPE[The timersession Example]

** link:ejb-basicexamples005.html#BNBPF[Running the timersession Example]
*** link:ejb-basicexamples005.html#GIQNI[To Run the timersession Example
Using NetBeans IDE]
*** link:ejb-basicexamples005.html#GIQNQ[To Build, Package, and Deploy
the timersession Example Using Maven]
*** link:ejb-basicexamples005.html#GIQOP[To Run the Web Client]
* link:ejb-basicexamples006.html#BNBPJ[Handling Exceptions]

[[using-the-embedded-enterprise-bean-container]]
link:ejb-embedded.html#GKCQZ[38 Using the Embedded Enterprise Bean Container]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:ejb-embedded001.html#GKFAE[Overview of the Embedded Enterprise
Bean Container]
* link:ejb-embedded002.html#GKCRR[Developing Embeddable Enterprise Bean
Applications]

** link:ejb-embedded002.html#GKCQI[Running Embedded Applications]

** link:ejb-embedded002.html#GKCOV[Creating the Enterprise Bean
Container]
*** link:ejb-embedded002.html#GKCRP[Explicitly Specifying Enterprise Bean
Modules to Be Initialized]

** link:ejb-embedded002.html#GLHUR[Looking Up Session Bean References]

** link:ejb-embedded002.html#GKCRE[Shutting Down the Enterprise Bean
Container]
* link:ejb-embedded003.html#GKCPV[The standalone Example Application]

** link:ejb-embedded003.html#BEIDAJAC[Overview of the standalone Example
Application]

** link:ejb-embedded003.html#GKCQP[To Run the standalone Example
Application Using NetBeans IDE]

** link:ejb-embedded003.html#BEIGHEHJ[To Run the standalone Example
Application Using Maven]

[[using-asynchronous-method-invocation-in-session-beans]]
link:ejb-async.html#GKIDZ[39 Using Asynchronous Method Invocation in Session Beans]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:ejb-async001.html#GKKQG[Asynchronous Method Invocation]

** link:ejb-async001.html#GKIFJ[Creating an Asynchronous Business Method]

** link:ejb-async001.html#GKIEM[Calling Asynchronous Methods from
Enterprise Bean Clients]
*** link:ejb-async001.html#GKICM[Retrieving the Final Result from an
Asynchronous Method Invocation]
*** link:ejb-async001.html#GKIDB[Cancelling an Asynchronous Method
Invocation]
*** link:ejb-async001.html#GKIEV[Checking the Status of an Asynchronous
Method Invocation]
* link:ejb-async002.html#GKIEZ[The async Example Application]

** link:ejb-async002.html#GKIQJ[Architecture of the async-war Module]

** link:ejb-async002.html#sthref158[Running the async Example]
*** link:ejb-async002.html#GKINW[To Run the async Example Application
Using NetBeans IDE]
*** link:ejb-async002.html#GKRFB[To Run the async Example Application
Using Maven]

[[part-viii-persistence]]
link:partpersist.html#BNBPY[Part VIII Persistence]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[[introduction-to-the-java-persistence-api]]
link:persistence-intro.html#BNBPZ[40 Introduction to the Java Persistence API]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:persistence-intro001.html#A1019685[Overview of the Java
Persistence API]
* link:persistence-intro002.html#BNBQA[Entities]

** link:persistence-intro002.html#BNBQB[Requirements for Entity Classes]

** link:persistence-intro002.html#BNBQC[Persistent Fields and Properties
in Entity Classes]
*** link:persistence-intro002.html#BNBQD[Persistent Fields]
*** link:persistence-intro002.html#BNBQE[Persistent Properties]
*** link:persistence-intro002.html#GIQVN[Using Collections in Entity
Fields and Properties]
*** link:persistence-intro002.html#GKAHQ[Validating Persistent Fields and
Properties]

** link:persistence-intro002.html#BNBQF[Primary Keys in Entities]

** link:persistence-intro002.html#BNBQH[Multiplicity in Entity
Relationships]

** link:persistence-intro002.html#BNBQI[Direction in Entity
Relationships]
*** link:persistence-intro002.html#BNBQJ[Bidirectional Relationships]
*** link:persistence-intro002.html#BNBQK[Unidirectional Relationships]
*** link:persistence-intro002.html#BNBQL[Queries and Relationship
Direction]
*** link:persistence-intro002.html#BNBQM[Cascade Operations and
Relationships]
*** link:persistence-intro002.html#GIQXY[Orphan Removal in Relationships]

** link:persistence-intro002.html#GJIWZ[Embeddable Classes in Entities]
* link:persistence-intro003.html#BNBQN[Entity Inheritance]

** link:persistence-intro003.html#BNBQO[Abstract Entities]

** link:persistence-intro003.html#BNBQP[Mapped Superclasses]

** link:persistence-intro003.html#BNBQQ[Non-Entity Superclasses]

** link:persistence-intro003.html#BNBQR[Entity Inheritance Mapping
Strategies]
*** link:persistence-intro003.html#BNBQS[The Single Table per Class
Hierarchy Strategy]
*** link:persistence-intro003.html#BNBQU[The Table per Concrete Class
Strategy]
*** link:persistence-intro003.html#BNBQV[The Joined Subclass Strategy]
* link:persistence-intro004.html#BNBQW[Managing Entities]

** link:persistence-intro004.html#BNBQY[The EntityManager Interface]
*** link:persistence-intro004.html#BNBQZ[Container-Managed Entity
Managers]
*** link:persistence-intro004.html#BNBRA[Application-Managed Entity
Managers]
*** link:persistence-intro004.html#BNBRB[Finding Entities Using the
EntityManager]
*** link:persistence-intro004.html#BNBRC[Managing an Entity Instance's
Lifecycle]
*** link:persistence-intro004.html#BNBRD[Persisting Entity Instances]
*** link:persistence-intro004.html#BNBRE[Removing Entity Instances]
*** link:persistence-intro004.html#BNBRF[Synchronizing Entity Data to the
Database]

** link:persistence-intro004.html#BNBRJ[Persistence Units]
* link:persistence-intro005.html#GJISE[Querying Entities]
* link:persistence-intro006.html#CHDBEGIC[Database Schema Creation]

** link:persistence-intro006.html#sthref161[Configuring an Application to
Create or Drop Database Tables]

** link:persistence-intro006.html#sthref166[Loading Data Using SQL
Scripts]
* link:persistence-intro007.html#GKCLC[Further Information about
Persistence]

[[running-the-persistence-examples]]
link:persistence-basicexamples.html#GIJST[41 Running the Persistence Examples]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:persistence-basicexamples001.html#A1023268[Overview of the
Persistence Examples]
* link:persistence-basicexamples002.html#GIQST[The order Application]

** link:persistence-basicexamples002.html#GIQRH[Entity Relationships in
the order Application]
*** link:persistence-basicexamples002.html#GIQQR[Self-Referential
Relationships]
*** link:persistence-basicexamples002.html#GIQSR[One-to-One
Relationships]
*** link:persistence-basicexamples002.html#GIQTJ[One-to-Many Relationship
Mapped to Overlapping Primary and Foreign Keys]
*** link:persistence-basicexamples002.html#GIQUD[Unidirectional
Relationships]

** link:persistence-basicexamples002.html#GIQQY[Primary Keys in the order
Application]
*** link:persistence-basicexamples002.html#GIQUV[Generated Primary Keys]
*** link:persistence-basicexamples002.html#GIQUF[Compound Primary Keys]

** link:persistence-basicexamples002.html#GIQTL[Entity Mapped to More
Than One Database Table]

** link:persistence-basicexamples002.html#GIQUE[Cascade Operations in the
order Application]

** link:persistence-basicexamples002.html#GIQSC[BLOB and CLOB Database
Types in the order Application]

** link:persistence-basicexamples002.html#GIQUM[Temporal Types in the
order Application]

** link:persistence-basicexamples002.html#GIQQV[Managing the order
Application's Entities]
*** link:persistence-basicexamples002.html#GIQRR[Creating Entities]
*** link:persistence-basicexamples002.html#GIQQC[Finding Entities]
*** link:persistence-basicexamples002.html#GIQUK[Setting Entity
Relationships]
*** link:persistence-basicexamples002.html#GIQSV[Using Queries]
*** link:persistence-basicexamples002.html#GIQTW[Removing Entities]

** link:persistence-basicexamples002.html#GIQUP[Running the order
Example]
*** link:persistence-basicexamples002.html#GIQSG[To Run the order Example
Using NetBeans IDE]
*** link:persistence-basicexamples002.html#GIQTY[To Run the order Example
Using Maven]
* link:persistence-basicexamples003.html#GIQSQ[The roster Application]

** link:persistence-basicexamples003.html#GIQSO[Relationships in the
roster Application]
*** link:persistence-basicexamples003.html#GIQQK[The Many-To-Many
Relationship in roster]

** link:persistence-basicexamples003.html#GIQRF[Entity Inheritance in the
roster Application]

** link:persistence-basicexamples003.html#GJJFL[Criteria Queries in the
roster Application]
*** link:persistence-basicexamples003.html#GJJEX[Metamodel Classes in the
roster Application]
*** link:persistence-basicexamples003.html#GJJFN[Obtaining a
CriteriaBuilder Instance in RequestBean]
*** link:persistence-basicexamples003.html#GJJFF[Creating Criteria
Queries in RequestBean's Business Methods]

** link:persistence-basicexamples003.html#GIQRX[Automatic Table
Generation in the roster Application]

** link:persistence-basicexamples003.html#GIQUZ[Running the roster
Example]
*** link:persistence-basicexamples003.html#GIQUG[To Run the roster
Example Using NetBeans IDE]
*** link:persistence-basicexamples003.html#GIQSJ[To Run the roster
Example Using Maven]
* link:persistence-basicexamples004.html#GKANQ[The address-book
Application]

** link:persistence-basicexamples004.html#GKAOJ[Bean Validation
Constraints in address-book]

** link:persistence-basicexamples004.html#GKANL[Specifying Error Messages
for Constraints in address-book]

** link:persistence-basicexamples004.html#GKAON[Validating Contact Input
from a JavaServer Faces Application]

** link:persistence-basicexamples004.html#GKAOP[Running the address-book
Example]
*** link:persistence-basicexamples004.html#GKAOD[To Run the address-book
Example Using NetBeans IDE]
*** link:persistence-basicexamples004.html#GKANZ[To Run the address-book
Example Using Maven]

[[the-java-persistence-query-language]]
link:persistence-querylanguage.html#BNBTG[42 The Java Persistence Query Language]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:persistence-querylanguage001.html#A1073303[Overview of the Java
Persistence Query Language]
* link:persistence-querylanguage002.html#BNBTH[Query Language
Terminology]
* link:persistence-querylanguage003.html#BNBRG[Creating Queries Using the
Java Persistence Query Language]

** link:persistence-querylanguage003.html#BNBRH[Named Parameters in
Queries]

** link:persistence-querylanguage003.html#BNBRI[Positional Parameters in
Queries]
* link:persistence-querylanguage004.html#BNBTI[Simplified Query Language
Syntax]

** link:persistence-querylanguage004.html#BNBTJ[Select Statements]

** link:persistence-querylanguage004.html#BNBTK[Update and Delete
Statements]
* link:persistence-querylanguage005.html#BNBTL[Example Queries]

** link:persistence-querylanguage005.html#BNBTM[Simple Queries]
*** link:persistence-querylanguage005.html#BNBTN[A Basic Select Query]
*** link:persistence-querylanguage005.html#BNBTO[Eliminating Duplicate
Values]
*** link:persistence-querylanguage005.html#BNBTP[Using Named Parameters]

** link:persistence-querylanguage005.html#BNBTQ[Queries That Navigate to
Related Entities]
*** link:persistence-querylanguage005.html#BNBTR[A Simple Query with
Relationships]
*** link:persistence-querylanguage005.html#BNBTS[Navigating to
Single-Valued Relationship Fields]
*** link:persistence-querylanguage005.html#BNBTT[Traversing Relationships
with an Input Parameter]
*** link:persistence-querylanguage005.html#BNBTU[Traversing Multiple
Relationships]
*** link:persistence-querylanguage005.html#BNBTV[Navigating According to
Related Fields]

** link:persistence-querylanguage005.html#BNBTW[Queries with Other
Conditional Expressions]
*** link:persistence-querylanguage005.html#BNBTX[The LIKE Expression]
*** link:persistence-querylanguage005.html#BNBTY[The IS NULL Expression]
*** link:persistence-querylanguage005.html#BNBTZ[The IS EMPTY Expression]
*** link:persistence-querylanguage005.html#BNBUA[The BETWEEN Expression]
*** link:persistence-querylanguage005.html#BNBUB[Comparison Operators]

** link:persistence-querylanguage005.html#BNBUC[Bulk Updates and Deletes]
*** link:persistence-querylanguage005.html#BNBUD[Update Queries]
*** link:persistence-querylanguage005.html#BNBUE[Delete Queries]
* link:persistence-querylanguage006.html#BNBUF[Full Query Language
Syntax]

** link:persistence-querylanguage006.html#BNBUG[BNF Symbols]

** link:persistence-querylanguage006.html#BNBUI[BNF Grammar of the Java
Persistence Query Language]

** link:persistence-querylanguage006.html#BNBUJ[FROM Clause]
*** link:persistence-querylanguage006.html#BNBUK[Identifiers]
*** link:persistence-querylanguage006.html#BNBUM[Identification
Variables]
*** link:persistence-querylanguage006.html#BNBUN[Range Variable
Declarations]
*** link:persistence-querylanguage006.html#BNBUO[Collection Member
Declarations]
*** link:persistence-querylanguage006.html#BNBUP[Joins]

** link:persistence-querylanguage006.html#BNBUQ[Path Expressions]
*** link:persistence-querylanguage006.html#BNBUR[Examples of Path
Expressions]
*** link:persistence-querylanguage006.html#BNBUS[Expression Types]
*** link:persistence-querylanguage006.html#BNBUT[Navigation]

** link:persistence-querylanguage006.html#BNBUU[WHERE Clause]
*** link:persistence-querylanguage006.html#BNBUV[Literals]
*** link:persistence-querylanguage006.html#BNBVA[Input Parameters]
*** link:persistence-querylanguage006.html#BNBVB[Conditional Expressions]
*** link:persistence-querylanguage006.html#BNBVC[Operators and Their
Precedence]
*** link:persistence-querylanguage006.html#BNBVE[BETWEEN Expressions]
*** link:persistence-querylanguage006.html#BNBVF[IN Expressions]
*** link:persistence-querylanguage006.html#BNBVG[LIKE Expressions]
*** link:persistence-querylanguage006.html#BNBVI[NULL Comparison
Expressions]
*** link:persistence-querylanguage006.html#BNBVJ[Empty Collection
Comparison Expressions]
*** link:persistence-querylanguage006.html#BNBVK[Collection Member
Expressions]
*** link:persistence-querylanguage006.html#BNBVL[Subqueries]
*** link:persistence-querylanguage006.html#BNBVO[Functional Expressions]
*** link:persistence-querylanguage006.html#GJJND[Case Expressions]
*** link:persistence-querylanguage006.html#BNBVR[NULL Values]
*** link:persistence-querylanguage006.html#BNBVU[Equality Semantics]

** link:persistence-querylanguage006.html#BNBVX[SELECT Clause]
*** link:persistence-querylanguage006.html#BNBVY[Return Types]
*** link:persistence-querylanguage006.html#BNBWB[The DISTINCT Keyword]
*** link:persistence-querylanguage006.html#BNBWC[Constructor Expressions]

** link:persistence-querylanguage006.html#BNBWD[ORDER BY Clause]

** link:persistence-querylanguage006.html#BNBWE[GROUP BY and HAVING
Clauses]

[[using-the-criteria-api-to-create-queries]]
link:persistence-criteria.html#GJITV[43 Using the Criteria API to Create Queries]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:persistence-criteria001.html#GJRIJ[Overview of the Criteria and
Metamodel APIs]
* link:persistence-criteria002.html#GJIUP[Using the Metamodel API to
Model Entity Classes]

** link:persistence-criteria002.html#GJIVL[Using Metamodel Classes]
* link:persistence-criteria003.html#GJIVM[Using the Criteria API and
Metamodel API to Create Basic Typesafe Queries]

** link:persistence-criteria003.html#GJIVS[Creating a Criteria Query]

** link:persistence-criteria003.html#GJIVQ[Query Roots]

** link:persistence-criteria003.html#GJIUV[Querying Relationships Using
Joins]

** link:persistence-criteria003.html#GJIVE[Path Navigation in Criteria
Queries]

** link:persistence-criteria003.html#GJIVI[Restricting Criteria Query
Results]
*** link:persistence-criteria003.html#GJIWN[The Expression Interface
Methods]
*** link:persistence-criteria003.html#GJIXA[Expression Methods in the
CriteriaBuilder Interface]

** link:persistence-criteria003.html#GJIXE[Managing Criteria Query
Results]
*** link:persistence-criteria003.html#GJIWO[Ordering Results]
*** link:persistence-criteria003.html#GJIXG[Grouping Results]

** link:persistence-criteria003.html#GJIVY[Executing Queries]
*** link:persistence-criteria003.html#GJIUR[Single-Valued Query Results]
*** link:persistence-criteria003.html#GJIVP[Collection-Valued Query
Results]

[[creating-and-using-string-based-criteria-queries]]
link:persistence-string-queries.html#GKJIQ[44 Creating and Using String-Based Criteria Queries]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:persistence-string-queries001.html#GKJIV[Overview of String-Based
Criteria API Queries]
* link:persistence-string-queries002.html#GKJBQ[Creating String-Based
Queries]
* link:persistence-string-queries003.html#GKJDB[Executing String-Based
Queries]

[[controlling-concurrent-access-to-entity-data-with-locking]]
link:persistence-locking.html#GKJJF[45 Controlling Concurrent Access to Entity Data with Locking]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:persistence-locking001.html#GKJHZ[Overview of Entity Locking and
Concurrency]

** link:persistence-locking001.html#GKJJC[Using Optimistic Locking]
* link:persistence-locking002.html#GKJIU[Lock Modes]

** link:persistence-locking002.html#GKJIK[Setting the Lock Mode]

** link:persistence-locking002.html#GKJIL[Using Pessimistic Locking]
*** link:persistence-locking002.html#GKJLQ[Pessimistic Locking Timeouts]

[[creating-fetch-plans-with-entity-graphs]]
link:persistence-entitygraphs.html#BABIJIAC[46 Creating Fetch Plans with Entity Graphs]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:persistence-entitygraphs001.html#A1153411[Overview of Using Fetch
Plans and Entity Graphs]
* link:persistence-entitygraphs002.html#BABCJBCG[Entity Graph Basics]

** link:persistence-entitygraphs002.html#sthref184[The Default Entity
Graph]

** link:persistence-entitygraphs002.html#sthref185[Using Entity Graphs in
Persistence Operations]
*** link:persistence-entitygraphs002.html#BABGEFCG[Fetch Graphs]
*** link:persistence-entitygraphs002.html#BABHJBHG[Load Graphs]
* link:persistence-entitygraphs003.html#BABFIGEI[Using Named Entity
Graphs]

** link:persistence-entitygraphs003.html#sthref186[Applying Named Entity
Graph Annotations to Entity Classes]

** link:persistence-entitygraphs003.html#sthref187[Obtaining EntityGraph
Instances from Named Entity Graphs]
* link:persistence-entitygraphs004.html#BABGJDAJ[Using Entity Graphs in
Query Operations]

[[using-a-second-level-cache-with-java-persistence-api-applications]]
link:persistence-cache.html#GKJIA[47 Using a Second-Level Cache with Java Persistence API Applications]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:persistence-cache001.html#GKJIO[Overview of the Second-Level
Cache]

** link:persistence-cache001.html#GKJIW[Controlling whether Entities May
Be Cached]
* link:persistence-cache002.html#GKJJJ[Specifying the Cache Mode Settings
to Improve Performance]

** link:persistence-cache002.html#GKJDK[Setting the Cache Retrieval and
Store Modes]
*** link:persistence-cache002.html#GKJDR[Cache Retrieval Mode]
*** link:persistence-cache002.html#GKJDD[Cache Store Mode]
*** link:persistence-cache002.html#GKJDS[Setting the Cache Retrieval or
Store Mode]

** link:persistence-cache002.html#GKJEB[Controlling the Second-Level
Cache Programmatically]
*** link:persistence-cache002.html#CHDEECCF[Overview of the
javax.persistence.Cache Interface]
*** link:persistence-cache002.html#GKJDZ[Checking whether an Entity's
Data Is Cached]
*** link:persistence-cache002.html#GKJDQ[Removing an Entity from the
Cache]
*** link:persistence-cache002.html#GKJDA[Removing All Data from the
Cache]

[[part-ix-messaging]]
link:partmessaging.html#GFIRP3[Part IX Messaging]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[[java-message-service-concepts]]
link:jms-concepts.html#BNCDQ[48 Java Message Service Concepts]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jms-concepts001.html#BNCDR[Overview of the JMS API]

** link:jms-concepts001.html#BNCDS[What Is Messaging?]

** link:jms-concepts001.html#BNCDT[What Is the JMS API?]

** link:jms-concepts001.html#BNCDU[When Can You Use the JMS API?]

** link:jms-concepts001.html#BNCDW[How Does the JMS API Work with the
Java EE Platform?]
* link:jms-concepts002.html#BNCDX[Basic JMS API Concepts]

** link:jms-concepts002.html#BNCDY[JMS API Architecture]

** link:jms-concepts002.html#BNCEA[Messaging Styles]
*** link:jms-concepts002.html#BNCEB[Point-to-Point Messaging Style]
*** link:jms-concepts002.html#BNCED[Publish/Subscribe Messaging Style]

** link:jms-concepts002.html#BNCEG[Message Consumption]
* link:jms-concepts003.html#BNCEH[The JMS API Programming Model]

** link:jms-concepts003.html#BNCEJ[JMS Administered Objects]
*** link:jms-concepts003.html#BNCEK[JMS Connection Factories]
*** link:jms-concepts003.html#BNCEL[JMS Destinations]

** link:jms-concepts003.html#BNCEM[Connections]

** link:jms-concepts003.html#BNCEN[Sessions]

** link:jms-concepts003.html#BABGDFEA[JMSContext Objects]

** link:jms-concepts003.html#BNCEO[JMS Message Producers]

** link:jms-concepts003.html#BNCEP[JMS Message Consumers]
*** link:jms-concepts003.html#BNCEQ[JMS Message Listeners]
*** link:jms-concepts003.html#BNCER[JMS Message Selectors]
*** link:jms-concepts003.html#BABEEJJJ[Consuming Messages from Topics]
*** link:jms-concepts003.html#BNCGD[Creating Durable Subscriptions]
*** link:jms-concepts003.html#BABJCIGJ[Creating Shared Subscriptions]

** link:jms-concepts003.html#BNCES[JMS Messages]
*** link:jms-concepts003.html#BNCET[Message Headers]
*** link:jms-concepts003.html#BNCEV[Message Properties]
*** link:jms-concepts003.html#BNCEW[Message Bodies]

** link:jms-concepts003.html#BNCEY[JMS Queue Browsers]

** link:jms-concepts003.html#BNCEZ[JMS Exception Handling]
* link:jms-concepts004.html#BNCFU[Using Advanced JMS Features]

** link:jms-concepts004.html#BNCFW[Controlling Message Acknowledgment]

** link:jms-concepts004.html#BNCFV[Specifying Options for Sending
Messages]
*** link:jms-concepts004.html#BNCFY[Specifying Message Persistence]
*** link:jms-concepts004.html#BNCFZ[Setting Message Priority Levels]
*** link:jms-concepts004.html#BNCGA[Allowing Messages to Expire]
*** link:jms-concepts004.html#BABGEADH[Specifying a Delivery Delay]
*** link:jms-concepts004.html#BABJFIAD[Using JMSProducer Method Chaining]

** link:jms-concepts004.html#BNCGB[Creating Temporary Destinations]

** link:jms-concepts004.html#BNCGH[Using JMS Local Transactions]

** link:jms-concepts004.html#BABFIFAJ[Sending Messages Asynchronously]
* link:jms-concepts005.html#BNCGL[Using the JMS API in Java EE
Applications]

** link:jms-concepts005.html#CHDGICJB[Overview of Using the JMS API]

** link:jms-concepts005.html#BABHFBDH[Creating Resources for Java EE
Applications]

** link:jms-concepts005.html#BNCGM[Using Resource Injection in Enterprise
Bean or Web Components]
*** link:jms-concepts005.html#CHDCHDIJ[Injecting a ConnectionFactory,
Queue, or Topic]
*** link:jms-concepts005.html#BABCJBEE[Injecting a JMSContext Object]

** link:jms-concepts005.html#BNCGN[Using Java EE Components to Produce
and to Synchronously Receive Messages]
*** link:jms-concepts005.html#BNCGO[Managing JMS Resources in Web and EJB
Components]
*** link:jms-concepts005.html#BNCGP[Managing Transactions in Session
Beans]

** link:jms-concepts005.html#BNCGQ[Using Message-Driven Beans to Receive
Messages Asynchronously]

** link:jms-concepts005.html#BNCGS[Managing JTA Transactions]
* link:jms-concepts006.html#BNCGU[Further Information about JMS]

[[java-message-service-examples]]
link:jms-examples.html#BNCGV[49 Java Message Service Examples]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:jms-examples001.html#A1251921[Building and Running Java Message
Service Examples]
* link:jms-examples002.html#BABEFBHJ[Overview of the JMS Examples]
* link:jms-examples003.html#BNCFA[Writing Simple JMS Applications]

** link:jms-examples003.html#CHDCEFGA[Overview of Writing Simple JMS
Application]

** link:jms-examples003.html#BNCFD[Starting the JMS Provider]

** link:jms-examples003.html#GKTJS[Creating JMS Administered Objects]
*** link:jms-examples003.html#BABHEFCB[To Create Resources for the Simple
Examples]

** link:jms-examples003.html#BABEEABE[Building All the Simple Examples]
*** link:jms-examples003.html#CHDJEJCD[To Build All the Simple Examples
Using NetBeans IDE]
*** link:jms-examples003.html#CHDGHJAA[To Build All the Simple Examples
Using Maven]

** link:jms-examples003.html#BABIHCAE[Sending Messages]
*** link:jms-examples003.html#CHDGHJHH[General Steps Performed in the
Example]
*** link:jms-examples003.html#CHDFBABB[The Producer.java Client]
*** link:jms-examples003.html#CHDHIIHE[To Run the Producer Client]

** link:jms-examples003.html#BNCFB[Receiving Messages Synchronously]
*** link:jms-examples003.html#BNCFC[The SynchConsumer.java Client]
*** link:jms-examples003.html#BNCFG[To Run the SynchConsumer and Producer
Clients]

** link:jms-examples003.html#BNCFH[Using a Message Listener for
Asynchronous Message Delivery]
*** link:jms-examples003.html#BNCFI[Writing the AsynchConsumer.java and
TextListener.java Clients]
*** link:jms-examples003.html#BNCFK[To Run the AsynchConsumer and
Producer Clients]

** link:jms-examples003.html#BNCFL[Browsing Messages on a Queue]
*** link:jms-examples003.html#BNCFM[The MessageBrowser.java Client]
*** link:jms-examples003.html#BNCFN[To Run the QueueBrowser Client]

** link:jms-examples003.html#BABDDHHC[Running Multiple Consumers on the
Same Destination]

** link:jms-examples003.html#BNCFX[Acknowledging Messages]
*** link:jms-examples003.html#GJSCG[To Run the ClientAckConsumer Client]
* link:jms-examples004.html#GIWFH[Writing More Advanced JMS Applications]

** link:jms-examples004.html#BNCGG[Using Durable Subscriptions]
*** link:jms-examples004.html#sthref206[To Create Resources for the
Durable Subscription Example]
*** link:jms-examples004.html#GJSCI[To Run the Durable Subscription
Example]
*** link:jms-examples004.html#sthref207[To Run the unsubscriber Example]

** link:jms-examples004.html#BNCGJ[Using Local Transactions]
*** link:jms-examples004.html#sthref209[To Create Resources for the
transactedexample Example]
*** link:jms-examples004.html#GJSHA[To Run the transactedexample Clients]
* link:jms-examples005.html#BABGEFHC[Writing High Performance and
Scalable JMS Applications]

** link:jms-examples005.html#BABIBEAC[Using Shared Nondurable
Subscriptions]
*** link:jms-examples005.html#sthref210[Writing the Clients for the
Shared Consumer Example]
*** link:jms-examples005.html#sthref211[To Run the SharedConsumer and
Producer Clients]

** link:jms-examples005.html#BABEJBHA[Using Shared Durable Subscriptions]
*** link:jms-examples005.html#sthref212[To Run the SharedDurableConsumer
and Producer Clients]
* link:jms-examples006.html#BABBABFC[Sending and Receiving Messages Using
a Simple Web Application]

** link:jms-examples006.html#sthref215[The websimplemessage Facelets
Pages]

** link:jms-examples006.html#sthref216[The websimplemessage Managed
Beans]

** link:jms-examples006.html#sthref217[Running the websimplemessage
Example]
*** link:jms-examples006.html#CHDHEHAB[Creating Resources for the
websimplemessage Example]
*** link:jms-examples006.html#CHDBADGA[To Package and Deploy
websimplemessage Using NetBeans IDE]
*** link:jms-examples006.html#CHDBBBEI[To Package and Deploy
websimplemessage Using Maven]
*** link:jms-examples006.html#CHDIFEHC[To Run the websimplemessage
Example]
* link:jms-examples007.html#BNBPK[Receiving Messages Asynchronously Using
a Message-Driven Bean]

** link:jms-examples007.html#BNBPL[Overview of the simplemessage Example]

** link:jms-examples007.html#BNBPN[The simplemessage Application Client]

** link:jms-examples007.html#BNBPO[The simplemessage Message-Driven Bean
Class]
*** link:jms-examples007.html#BNBPP[The onMessage Method]

** link:jms-examples007.html#BNBPQ[Running the simplemessage Example]
*** link:jms-examples007.html#BNBPR[Creating Resources for the
simplemessage Example]
*** link:jms-examples007.html#CHDFBDDA[To Run the simplemessage Example
Using NetBeans IDE]
*** link:jms-examples007.html#BNBPT[To Run the simplemessage Example
Using Maven]
* link:jms-examples008.html#BNCGW[Sending Messages from a Session Bean to
an MDB]

** link:jms-examples008.html#BNCGX[Writing the Application Components for
the clientsessionmdb Example]
*** link:jms-examples008.html#BNCGZ[Coding the Application Client:
MyAppClient.java]
*** link:jms-examples008.html#BNCHA[Coding the Publisher Session Bean]
*** link:jms-examples008.html#BNCHB[Coding the Message-Driven Bean:
MessageBean.java]

** link:jms-examples008.html#CHDDFAHA[Running the clientsessionmdb
Example]
*** link:jms-examples008.html#CHDGGAIB[To Run clientsessionmdb Using
NetBeans IDE]
*** link:jms-examples008.html#CHDDDHBE[To Run clientsessionmdb Using
Maven]
* link:jms-examples009.html#BNCHF[Using an Entity to Join Messages from
Two MDBs]

** link:jms-examples009.html#BNCHG[Overview of the clientmdbentity
Example Application]

** link:jms-examples009.html#BNCHI[Writing the Application Components for
the clientmdbentity Example]
*** link:jms-examples009.html#BNCHJ[Coding the Application Client:
HumanResourceClient.java]
*** link:jms-examples009.html#BNCHK[Coding the Message-Driven Beans for
the clientmdbentity Example]
*** link:jms-examples009.html#BNCHL[Coding the Entity Class for the
clientmdbentity Example]

** link:jms-examples009.html#CHDEEDJH[Running the clientmdbentity
Example]
*** link:jms-examples009.html#CHDIJDEE[To Run clientmdbentity Using
NetBeans IDE]
*** link:jms-examples009.html#CHDICHGH[To Run clientmdbentity Using
Maven]
*** link:jms-examples009.html#CHDCDEEF[Viewing the Application Output]
* link:jms-examples010.html#BABDFDJC[Using NetBeans IDE to Create JMS
Resources]

** link:jms-examples010.html#CHDFIJBJ[To Create JMS Resources Using
NetBeans IDE]

** link:jms-examples010.html#CHDCFADI[To Delete JMS Resources Using
NetBeans IDE]

[[part-x-security]]
link:partsecurity.html#GIJRP[Part X Security]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[[introduction-to-security-in-the-java-ee-platform]]
link:security-intro.html#BNBWJ[50 Introduction to Security in the Java EE Platform]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:security-intro001.html#BNBWK[Overview of Java EE Security]

** link:security-intro001.html#BNBWL[A Simple Application Security
Walkthrough]
*** link:security-intro001.html#BNBWM[Step 1: Initial Request]
*** link:security-intro001.html#BNBWO[Step 2: Initial Authentication]
*** link:security-intro001.html#BNBWQ[Step 3: URL Authorization]
*** link:security-intro001.html#BNBWS[Step 4: Fulfilling the Original
Request]
*** link:security-intro001.html#BNBWU[Step 5: Invoking Enterprise Bean
Business Methods]

** link:security-intro001.html#BNBWW[Features of a Security Mechanism]

** link:security-intro001.html#BNBWX[Characteristics of Application
Security]
* link:security-intro002.html#BNBWY[Security Mechanisms]

** link:security-intro002.html#BNBWZ[Java SE Security Mechanisms]

** link:security-intro002.html#BNBXA[Java EE Security Mechanisms]
*** link:security-intro002.html#BNBXB[Application-Layer Security]
*** link:security-intro002.html#BNBXC[Transport-Layer Security]
*** link:security-intro002.html#BNBXD[Message-Layer Security]
* link:security-intro003.html#BNBXE[Securing Containers]

** link:security-intro003.html#BNBXG[Using Annotations to Specify
Security Information]

** link:security-intro003.html#BNBXF[Using Deployment Descriptors for
Declarative Security]

** link:security-intro003.html#BNBXH[Using Programmatic Security]
* link:security-intro004.html#BNBXI[Securing GlassFish Server]
* link:security-intro005.html#BNBXJ[Working with Realms, Users, Groups,
and Roles]

** link:security-intro005.html#BNBXK[What Are Realms, Users, Groups, and
Roles?]
*** link:security-intro005.html#BNBXM[What Is a Realm?]
*** link:security-intro005.html#BNBXN[What Is a User?]
*** link:security-intro005.html#BNBXO[What Is a Group?]
*** link:security-intro005.html#BNBXP[What Is a Role?]
*** link:security-intro005.html#BNBXQ[Some Other Terminology]

** link:security-intro005.html#BNBXR[Managing Users and Groups in
GlassFish Server]
*** link:security-intro005.html#BNBXS[To Add Users to GlassFish Server]

** link:security-intro005.html#BNBXU[Setting Up Security Roles]

** link:security-intro005.html#BNBXV[Mapping Roles to Users and Groups]
* link:security-intro006.html#BNBXW[Establishing a Secure Connection
Using SSL]

** link:security-intro006.html#BNBXX[Verifying and Configuring SSL
Support]
* link:security-intro007.html#BNBYJ[Further Information about Security]

[[getting-started-securing-web-applications]]
link:security-webtier.html#BNCAS[51 Getting Started Securing Web Applications]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:security-webtier001.html#BNCAT[Overview of Web Application
Security]
* link:security-webtier002.html#GKBAA[Securing Web Applications]

** link:security-webtier002.html#CHDBIBHI[Overview of Securing Web
Applications]

** link:security-webtier002.html#BNCBK[Specifying Security Constraints]
*** link:security-webtier002.html#GJJCD[Specifying a Web Resource
Collection]
*** link:security-webtier002.html#GJJCG[Specifying an Authorization
Constraint]
*** link:security-webtier002.html#BNCBM[Specifying a Secure Connection]
*** link:security-webtier002.html#BNCBL[Specifying Security Constraints
for Resources]

** link:security-webtier002.html#GKBSA[Specifying Authentication
Mechanisms]
*** link:security-webtier002.html#BNCBO[HTTP Basic Authentication]
*** link:security-webtier002.html#BNCBQ[Form-Based Authentication]
*** link:security-webtier002.html#BNCBW[Digest Authentication]

** link:security-webtier002.html#BNCBN[Specifying an Authentication
Mechanism in the Deployment Descriptor]

** link:security-webtier002.html#BNCAV[Declaring Security Roles]
* link:security-webtier003.html#GJIIE[Using Programmatic Security with
Web Applications]

** link:security-webtier003.html#GIRCJ[Authenticating Users
Programmatically]

** link:security-webtier003.html#BNCBA[Checking Caller Identity
Programmatically]

** link:security-webtier003.html#GJJLQ[Example Code for Programmatic
Security]

** link:security-webtier003.html#BNCBB[Declaring and Linking Role
References]
* link:security-webtier004.html#BNCBX[Examples: Securing Web
Applications]

** link:security-webtier004.html#CHDEBCHG[Overview of Examples of
Securing Web Applications]

** link:security-webtier004.html#GJJLK[To Set Up Your System for Running
the Security Examples]

** link:security-webtier004.html#BNCCK[The hello2-basicauth Example:
Basic Authentication with a Servlet]
*** link:security-webtier004.html#GJRMH[Specifying Security for Basic
Authentication Using Annotations]
*** link:security-webtier004.html#GJQYS[To Build, Package, and Deploy the
hello2-basicauth Example Using NetBeans IDE]
*** link:security-webtier004.html#GJQZH[To Build, Package, and Deploy the
hello2-basicauth Example Using Maven]
*** link:security-webtier004.html#GJQZF[To Run the hello2-basicauth
Example]

** link:security-webtier004.html#BNCBY[The hello1-formauth Example:
Form-Based Authentication with a JavaServer Faces Application]
*** link:security-webtier004.html#BNCCA[Creating the Login Form and the
Error Page]
*** link:security-webtier004.html#BNCCB[Specifying Security for the
Form-Based Authentication Example]
*** link:security-webtier004.html#GJRBA[To Build, Package, and Deploy the
hello1-formauth Example Using NetBeans IDE]
*** link:security-webtier004.html#GJRAZ[To Build, Package, and Deploy the
hello1-formauth Example Using Maven and the asadmin Command]
*** link:security-webtier004.html#GJRAL[To Run the hello1-formauth
Example]

[[getting-started-securing-enterprise-applications]]
link:security-javaee.html#BNBYK[52 Getting Started Securing Enterprise Applications]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:security-javaee001.html#CACGIFHJ[Basic Security Tasks for
Enterprise Applications]
* link:security-javaee002.html#BNBYL[Securing Enterprise Beans]

** link:security-javaee002.html#GJGDI[Securing an Enterprise Bean Using
Declarative Security]
*** link:security-javaee002.html#GJGCQ[Specifying Authorized Users by
Declaring Security Roles]
*** link:security-javaee002.html#BNBYU[Specifying an Authentication
Mechanism and Secure Connection]

** link:security-javaee002.html#GJGCS[Securing an Enterprise Bean
Programmatically]
*** link:security-javaee002.html#GJGCR[Accessing an Enterprise Bean
Caller's Security Context]

** link:security-javaee002.html#BNBYR[Propagating a Security Identity
(Run-As)]
*** link:security-javaee002.html#BNBZB[Configuring a Component's
Propagated Security Identity]
*** link:security-javaee002.html#BNBZC[Trust between Containers]

** link:security-javaee002.html#BNBZG[Deploying Secure Enterprise Beans]
* link:security-javaee003.html#GKBSZ[Examples: Securing Enterprise Beans]

** link:security-javaee003.html#BNBZK[The cart-secure Example: Securing
an Enterprise Bean with Declarative Security]
*** link:security-javaee003.html#BNBZL[Annotating the Bean]
*** link:security-javaee003.html#BNBZN[To Run the cart-secure Example
Using NetBeans IDE]
*** link:security-javaee003.html#BNBZO[To Run the cart-secure Example
Using Maven]

** link:security-javaee003.html#BNCAA[The converter-secure Example:
Securing an Enterprise Bean with Programmatic Security]
*** link:security-javaee003.html#BNCAB[Modifying ConverterBean]
*** link:security-javaee003.html#GKBSI[Modifying ConverterServlet]
*** link:security-javaee003.html#BNCAD[To Run the converter-secure
Example Using NetBeans IDE]
*** link:security-javaee003.html#BNCAE[To Run the converter-secure
Example Using Maven]
*** link:security-javaee003.html#GJTDP[To Run the converter-secure
Example]

[[java-ee-security-advanced-topics]]
link:security-advanced.html#GJJWX[53 Java EE Security: Advanced Topics]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:security-advanced001.html#BNBYB[Working with Digital Certificates]

** link:security-advanced001.html#BNBYC[Creating a Server Certificate]
*** link:security-advanced001.html#GJRGY[To Use keytool to Create a
Server Certificate]

** link:security-advanced001.html#GLIFW[Adding Users to the Certificate
Realm]

** link:security-advanced001.html#BNBYF[Using a Different Server
Certificate with GlassFish Server]
*** link:security-advanced001.html#sthref230[To Specify a Different
Server Certificate]
* link:security-advanced002.html#GLIEN[Authentication Mechanisms]

** link:security-advanced002.html#GLIEQ[Client Authentication]

** link:security-advanced002.html#GLIEL[Mutual Authentication]
*** link:security-advanced002.html#BNBYH[Enabling Mutual Authentication
over SSL]
*** link:security-advanced002.html#BNBYI[Creating a Client Certificate
for Mutual Authentication]
* link:security-advanced003.html#BABEJJDE[Using the JDBC Realm for User
Authentication]

** link:security-advanced003.html#sthref233[To Configure a JDBC
Authentication Realm]
* link:security-advanced004.html#BABGEJJJ[Securing HTTP Resources]
* link:security-advanced005.html#GLIGC[Securing Application Clients]

** link:security-advanced005.html#GLIDW[Using Login Modules]

** link:security-advanced005.html#GLIHQ[Using Programmatic Login]
* link:security-advanced006.html#GLIFD[Securing Enterprise Information
Systems Applications]

** link:security-advanced006.html#BABBJHIC[Overview of Securing
Enterprise Information Systems Applications]

** link:security-advanced006.html#GLIHL[Container-Managed Sign-On]

** link:security-advanced006.html#GLIDP[Component-Managed Sign-On]

** link:security-advanced006.html#GLIGS[Configuring Resource Adapter
Security]

** link:security-advanced006.html#GLIGW[Mapping an Application Principal
to EIS Principals]
* link:security-advanced007.html#GKHRL[Configuring Security Using
Deployment Descriptors]

** link:security-advanced007.html#BNCCM[Specifying Security for Basic
Authentication in the Deployment Descriptor]

** link:security-advanced007.html#GKAFQ[Specifying Non-Default
Principal-to-Role Mapping in the Deployment Descriptor]
* link:security-advanced008.html#BABBGBBF[Further Information about
Advanced Security Topics]

[[part-xi-java-ee-supporting-technologies]]
link:partsupporttechs.html#GIJUE[Part XI Java EE Supporting Technologies]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[[transactions]]
link:transactions.html#BNCIH[54 Transactions]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:transactions001.html#A1024277[Overview of Transactions]
* link:transactions002.html#GIJRG[Transactions in Java EE Applications]
* link:transactions003.html#BNCII[What Is a Transaction?]
* link:transactions004.html#BNCIJ[Container-Managed Transactions]

** link:transactions004.html#BNCIK[Transaction Attributes]
*** link:transactions004.html#BNCIM[Required Attribute]
*** link:transactions004.html#BNCIN[RequiresNew Attribute]
*** link:transactions004.html#BNCIO[Mandatory Attribute]
*** link:transactions004.html#BNCIP[NotSupported Attribute]
*** link:transactions004.html#BNCIQ[Supports Attribute]
*** link:transactions004.html#BNCIR[Never Attribute]
*** link:transactions004.html#BNCIS[Summary of Transaction Attributes]
*** link:transactions004.html#BNCIU[Setting Transaction Attributes]

** link:transactions004.html#BNCIV[Rolling Back a Container-Managed
Transaction]

** link:transactions004.html#BNCIW[Synchronizing a Session Bean's
Instance Variables]

** link:transactions004.html#BNCIX[Methods Not Allowed in
Container-Managed Transactions]
* link:transactions005.html#BNCIY[Bean-Managed Transactions]

** link:transactions005.html#BNCIZ[JTA Transactions]

** link:transactions005.html#BNCJA[Returning without Committing]

** link:transactions005.html#BNCJB[Methods Not Allowed in Bean-Managed
Transactions]
* link:transactions006.html#BNCJC[Transaction Timeouts]

** link:transactions006.html#sthref237[To Set a Transaction Timeout]
* link:transactions007.html#BNCJD[Updating Multiple Databases]
* link:transactions008.html#BNCJG[Transactions in Web Components]
* link:transactions009.html#GKCMI[Further Information about Transactions]

[[resource-adapters-and-contracts]]
link:resources.html#BNCJH[55 Resource Adapters and Contracts]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:resources001.html#GIPGL[What Is a Resource Adapter?]

** link:resources001.html#GIPGY[Management Contracts]
*** link:resources001.html#GIPHT[Lifecycle Management]
*** link:resources001.html#GIPIG[Work Management Contract]

** link:resources001.html#GIPMK[Generic Work Context Contract]

** link:resources001.html#GKCKI[Outbound and Inbound Contracts]
* link:resources002.html#GIRDD[Metadata Annotations]
* link:resources003.html#GIPJU[Common Client Interface]
* link:resources004.html#CHDJFIGB[Using Resource Adapters with Contexts
and Dependency Injection for Java EE (CDI)]
* link:resources005.html#BNCJW[Further Information about Resource
Adapters]

[[the-resource-adapter-examples]]
link:connectorexample.html#GLODB[56 The Resource Adapter Examples]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:connectorexample001.html#A1253757[Overview of the Resource Adapter
Examples]
* link:connectorexample002.html#CHDFHAID[The trading Example]

** link:connectorexample002.html#CHDFADJD[Using the Outbound Resource
Adapter]

** link:connectorexample002.html#sthref243[Implementing the Outbound
Resource Adapter]

** link:connectorexample002.html#sthref246[Running the trading Example]
*** link:connectorexample002.html#BABCHDDC[To Run the trading Example
Using NetBeans IDE]
*** link:connectorexample002.html#BABFJAAG[To Run the trading Example
Using Maven]
* link:connectorexample003.html#CHDJEADB[The traffic Example]

** link:connectorexample003.html#sthref248[Using the Inbound Resource
Adapter]

** link:connectorexample003.html#sthref249[Implementing the Inbound
Resource Adapter]

** link:connectorexample003.html#sthref252[Running the traffic Example]
*** link:connectorexample003.html#BABIJJEH[To Run the traffic Example
Using NetBeans IDE]
*** link:connectorexample003.html#BABBBGBA[To Run the traffic Example
Using Maven]

[[using-java-ee-interceptors]]
link:interceptors.html#GKEED[57 Using Java EE Interceptors]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:interceptors001.html#GKIGQ[Overview of Interceptors]

** link:interceptors001.html#GKECK[Interceptor Classes]

** link:interceptors001.html#GKEDY[Interceptor Lifecycle]

** link:interceptors001.html#GKHSN[Interceptors and CDI]
* link:interceptors002.html#GKEDM[Using Interceptors]

** link:interceptors002.html#GKECY[Intercepting Method Invocations]
*** link:interceptors002.html#GKHMH[Using Multiple Method Interceptors]
*** link:interceptors002.html#GKHOV[Accessing Target Method Parameters
from an Interceptor Class]

** link:interceptors002.html#GKECR[Intercepting Lifecycle Callback
Events]
*** link:interceptors002.html#sthref254[Using AroundConstruct Interceptor
Methods]
*** link:interceptors002.html#GKHNI[Using Multiple Lifecycle Callback
Interceptors]

** link:interceptors002.html#GKEDU[Intercepting Timeout Events]
*** link:interceptors002.html#GKHLA[Using Multiple Timeout Interceptors]

** link:interceptors002.html#sthref255[Binding Interceptors to
Components]
*** link:interceptors002.html#sthref256[Declaring the Interceptor
Bindings on an Interceptor Class]
*** link:interceptors002.html#sthref257[Binding a Component to an
Interceptor]

** link:interceptors002.html#sthref258[Ordering Interceptors]
* link:interceptors003.html#GKECI[The interceptor Example Application]

** link:interceptors003.html#sthref260[Running the interceptor Example]
*** link:interceptors003.html#GKEDF[To Run the interceptor Example Using
NetBeans IDE]
*** link:interceptors003.html#GKECT[To Run the interceptor Example Using
Maven]

[[batch-processing]]
link:batch-processing.html#GKJIQ6[58 Batch Processing]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:batch-processing001.html#BCGJDEEH[Introduction to Batch
Processing]

** link:batch-processing001.html#sthref261[Steps in Batch Jobs]

** link:batch-processing001.html#sthref263[Parallel Processing]

** link:batch-processing001.html#sthref264[Status and Decision Elements]

** link:batch-processing001.html#sthref266[Batch Framework Functionality]
* link:batch-processing002.html#BCGGIBHA[Batch Processing in Java EE]

** link:batch-processing002.html#BABEAFJI[The Batch Processing Framework]

** link:batch-processing002.html#BABCGDHJ[Creating Batch Applications]

** link:batch-processing002.html#BABDGDJB[Elements of a Batch Job]

** link:batch-processing002.html#BABHJEJC[Properties and Parameters]

** link:batch-processing002.html#BABHJGDH[Job Instances and Job
Executions]

** link:batch-processing002.html#BABBFGEF[Batch and Exit Status]
* link:batch-processing003.html#BCGHBJIG[Simple Use Case]

** link:batch-processing003.html#sthref268[Chunk Step]

** link:batch-processing003.html#sthref269[Task Step]
* link:batch-processing004.html#BCGDDBBG[Using the Job Specification
Language]

** link:batch-processing004.html#sthref270[The job Element]

** link:batch-processing004.html#sthref271[The step Element]
*** link:batch-processing004.html#sthref272[The chunk Element]
*** link:batch-processing004.html#sthref274[The batchlet Element]
*** link:batch-processing004.html#sthref275[The partition Element]

** link:batch-processing004.html#sthref276[The flow Element]

** link:batch-processing004.html#sthref277[The split Element]

** link:batch-processing004.html#sthref278[The decision Element]
* link:batch-processing005.html#BCGHDHGH[Creating Batch Artifacts]

** link:batch-processing005.html#BABDAIBI[Batch Artifact Interfaces]

** link:batch-processing005.html#BCGIFJBB[Dependency Injection in Batch
Artifacts]

** link:batch-processing005.html#BCGCJEEF[Using the Context Objects from
the Batch Runtime]
* link:batch-processing006.html#BCGCAHCB[Submitting Jobs to the Batch
Runtime]

** link:batch-processing006.html#sthref282[Starting a Job]

** link:batch-processing006.html#BCGIBGFC[Checking the Status of a Job]

** link:batch-processing006.html#sthref283[Invoking the Batch Runtime in
Your Application]
* link:batch-processing007.html#BCGBBGJI[Packaging Batch Applications]
* link:batch-processing008.html#BCGJHEHJ[The webserverlog Example
Application]

** link:batch-processing008.html#BABCHDFB[Architecture of the
webserverlog Example Application]
*** link:batch-processing008.html#BABFGCEC[The Job Definition File]
*** link:batch-processing008.html#BABIHBFF[The LogLine and
LogFilteredLine Items]
*** link:batch-processing008.html#sthref284[The Chunk Step Batch
Artifacts]
*** link:batch-processing008.html#BCGCCFAC[The Listener Batch Artifacts]
*** link:batch-processing008.html#sthref285[The Task Step Batch Artifact]
*** link:batch-processing008.html#sthref286[The JavaServer Faces Pages]
*** link:batch-processing008.html#sthref287[The Managed Bean]

** link:batch-processing008.html#BABFIHJA[Running the webserverlog
Example Application]
*** link:batch-processing008.html#BABHIJBE[To Run the webserverlog
Example Application Using NetBeans IDE]
*** link:batch-processing008.html#BABGACCD[To Run the webserverlog
Example Application Using Maven]
* link:batch-processing009.html#BCGFCACD[The phonebilling Example
Application]

** link:batch-processing009.html#BABDEIFG[Architecture of the
phonebilling Example Application]
*** link:batch-processing009.html#sthref288[The Job Definition File]
*** link:batch-processing009.html#sthref289[The CallRecord and PhoneBill
Entities]
*** link:batch-processing009.html#sthref290[The Call Records Chunk Step]
*** link:batch-processing009.html#BCGGGAHB[The Phone Billing Chunk Step]
*** link:batch-processing009.html#sthref291[The JavaServer Faces Pages]
*** link:batch-processing009.html#sthref292[The Managed Bean]

** link:batch-processing009.html#BABBGDAA[Running the phonebilling
Example Application]
*** link:batch-processing009.html#BABIBBBG[To Run the phonebilling
Example Application Using NetBeans IDE]
*** link:batch-processing009.html#BABFHIIB[To Run the phonebilling
Example Application Using Maven]
* link:batch-processing010.html#BCGHCHAJ[Further Information about Batch
Processing]

[[concurrency-utilities-for-java-ee]]
link:concurrency-utilities.html#GKJIQ8[59 Concurrency Utilities for Java EE]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:concurrency-utilities001.html#CIHDFGGG[Concurrency Basics]

** link:concurrency-utilities001.html#sthref293[Threads and Processes]
* link:concurrency-utilities002.html#CIHFBCFH[Main Components of the
Concurrency Utilities]
* link:concurrency-utilities003.html#CIHIDBDG[Concurrency and
Transactions]
* link:concurrency-utilities004.html#CIHCACAA[Concurrency and Security]
* link:concurrency-utilities005.html#CIHCGGEG[The jobs Concurrency
Example]

** link:concurrency-utilities005.html#sthref294[Running the jobs Example]
*** link:concurrency-utilities005.html#CHDCIBBD[To Configure GlassFish
Server for the Basic Concurrency Example]
*** link:concurrency-utilities005.html#CHDFBAHJ[To Build, Package, and
Deploy the jobs Example Using NetBeans IDE]
*** link:concurrency-utilities005.html#CHDECFFF[To Build, Package, and
Deploy the jobs Example Using Maven]
*** link:concurrency-utilities005.html#CHDFHHAF[To Run the jobs Example
and Submit Jobs with Low Priority]
*** link:concurrency-utilities005.html#CHDHEABJ[To Run the jobs Example
and Submit Jobs with High Priority]
* link:concurrency-utilities006.html#CIHBFEAE[The taskcreator Concurrency
Example]

** link:concurrency-utilities006.html#sthref296[Running the taskcreator
Example]
*** link:concurrency-utilities006.html#CHDCCJHB[To Build, Package, and
Deploy the taskcreator Example Using NetBeans IDE]
*** link:concurrency-utilities006.html#CHDHJBDD[To Build, Package, and
Deploy the taskcreator Example Using Maven]
*** link:concurrency-utilities006.html#CHDBJGID[To Run the taskcreator
Example]
* link:concurrency-utilities007.html#CHDBIHAA[Further Information about
the Concurrency Utilities]

[[part-xii-case-studies]]
link:partcasestudies.html#GKGJW[Part XII Case Studies]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[[dukes-bookstore-case-study-example]]
link:dukes-bookstore.html#GLNVI[60 Duke's Bookstore Case Study Example]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:dukes-bookstore001.html#GLOAW[Design and Architecture of Duke's
Bookstore]
* link:dukes-bookstore002.html#GLQFD[The Duke's Bookstore Interface]

** link:dukes-bookstore002.html#GLQER[The Book Java Persistence API
Entity]

** link:dukes-bookstore002.html#GLQEU[Enterprise Beans Used in Duke's
Bookstore]

** link:dukes-bookstore002.html#GLQDP[Facelets Pages and Managed Beans
Used in Duke's Bookstore]

** link:dukes-bookstore002.html#GLQDX[Custom Components and Other Custom
Objects Used in Duke's Bookstore]

** link:dukes-bookstore002.html#GLQDG[Properties Files Used in Duke's
Bookstore]

** link:dukes-bookstore002.html#GLQED[Deployment Descriptors Used in
Duke's Bookstore]
* link:dukes-bookstore003.html#GLPPQ[Running the Duke's Bookstore Case
Study Application]

** link:dukes-bookstore003.html#GLPQG[To Build and Deploy Duke's
Bookstore Using NetBeans IDE]

** link:dukes-bookstore003.html#GLPQN[To Build and Deploy Duke's
Bookstore Using Maven]

** link:dukes-bookstore003.html#BABEHDEG[To Run Duke's Bookstore]

[[dukes-tutoring-case-study-example]]
link:dukes-tutoring.html#GKAEE[61 Duke's Tutoring Case Study Example]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:dukes-tutoring001.html#GKAEI[Design and Architecture of Duke's
Tutoring]
* link:dukes-tutoring002.html#GKAFH[Main Interface]

** link:dukes-tutoring002.html#GKAFJ[Java Persistence API Entities Used
in the Main Interface]

** link:dukes-tutoring002.html#GKAFC[Enterprise Beans Used in the Main
Interface]

** link:dukes-tutoring002.html#BCGHHCDA[WebSocket Endpoint Used in the
Main Interface]

** link:dukes-tutoring002.html#GKAET[Facelets Files Used in the Main
Interface]

** link:dukes-tutoring002.html#GKADH[Helper Classes Used in the Main
Interface]

** link:dukes-tutoring002.html#GKADA[Properties Files]

** link:dukes-tutoring002.html#GKAEV[Deployment Descriptors Used in
Duke's Tutoring]
* link:dukes-tutoring003.html#GKAFW[Administration Interface]

** link:dukes-tutoring003.html#GKAEN[Enterprise Beans Used in the
Administration Interface]

** link:dukes-tutoring003.html#GKACB[Facelets Files Used in the
Administration Interface]

** link:dukes-tutoring003.html#BCGHIDEG[CDI Managed Beans Used in the
Administration Interface]

** link:dukes-tutoring003.html#BCGFFFCA[Helper Classes Used in the
Administration Interface]
* link:dukes-tutoring004.html#GKJNN[Running the Duke's Tutoring Case
Study Application]

** link:dukes-tutoring004.html#GKJOA[Running Duke's Tutoring]
*** link:dukes-tutoring004.html#GKJNR[To Build and Deploy Duke's Tutoring
Using NetBeans IDE]
*** link:dukes-tutoring004.html#GKJOG[To Build and Deploy Duke's Tutoring
Using Maven]
*** link:dukes-tutoring004.html#GKJOC[Using Duke's Tutoring]

[[dukes-forest-case-study-example]]
link:dukes-forest.html#GLNPW[62 Duke's Forest Case Study Example]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* link:dukes-forest001.html#A1256074[Overview of the Duke's Forest Case
Study Example]
* link:dukes-forest002.html#GLNRJ[Design and Architecture of Duke's
Forest]

** link:dukes-forest002.html#CIHHJEGA[The events Project]

** link:dukes-forest002.html#CIHFCIAC[The entities Project]

** link:dukes-forest002.html#sthref301[The dukes-payment Project]

** link:dukes-forest002.html#sthref302[The dukes-resources Project]

** link:dukes-forest002.html#sthref303[The Duke's Store Project]
*** link:dukes-forest002.html#sthref304[Enterprise Beans Used in Duke's
Store]
*** link:dukes-forest002.html#sthref305[Facelets Files Used in the Main
Interface of Duke's Store]
*** link:dukes-forest002.html#CIHHDHIH[Facelets Files Used in the
Administration Interface of Duke's Store]
*** link:dukes-forest002.html#sthref306[Managed Beans Used in Duke's
Store]
*** link:dukes-forest002.html#sthref307[Helper Classes Used in Duke's
Store]
*** link:dukes-forest002.html#CIHEBAFD[Qualifiers Used in Duke's Store]
*** link:dukes-forest002.html#sthref308[Event Handlers Used in Duke's
Store]
*** link:dukes-forest002.html#sthref309[Deployment Descriptors Used in
Duke's Store]

** link:dukes-forest002.html#sthref310[The Duke's Shipment Project]
*** link:dukes-forest002.html#sthref311[Enterprise Beans Used in Duke's
Shipment]
*** link:dukes-forest002.html#sthref312[Facelets Files Used in Duke's
Shipment]
*** link:dukes-forest002.html#sthref313[Managed Beans Used in Duke's
Shipment]
*** link:dukes-forest002.html#sthref314[Helper Class Used in Duke's
Shipment]
*** link:dukes-forest002.html#sthref315[Qualifier Used in Duke's
Shipment]
*** link:dukes-forest002.html#sthref316[Deployment Descriptors Used in
Duke's Shipment]
* link:dukes-forest003.html#GLNQP[Building and Deploying the Duke's
Forest Case Study Application]

** link:dukes-forest003.html#CHDJDIFH[To Build and Deploy the Duke's
Forest Application Using NetBeans IDE]

** link:dukes-forest003.html#CHDEJHBJ[To Build and Deploy the Duke's
Forest Application Using Maven]
* link:dukes-forest004.html#GLNSX[Running the Duke's Forest Application]

** link:dukes-forest004.html#CHDBDEHH[To Register as a Duke's Store
Customer]

** link:dukes-forest004.html#CHDCEJIC[To Purchase Products]

** link:dukes-forest004.html#CHDICAIJ[To Approve Shipment of a Product]

** link:dukes-forest004.html#CHDIFEGC[To Create a New Product]
