Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1405
: (colon), in XML markup, 43, 47. (period)
JSP operator, 491–492in XML markup, 43
& (ampersand)entity for, 49SAX processing, 127
&& (ampersands), JSP operator, 494' (apostrophe), entity for, 49* (asterisk)
DTD qualifier, 53JSP operator, 494XPath operator, 253XPath wildcard, 252
@* (at sign, asterisk), XPath wildcard, 252
= (equal sign), XPath operator, 253== (equal signs), JSP operator, 494! (exclamation point), JSP operator, 494!= (exclamation point, equal sign)
JSP operator, 494XPath operator, 253
> (greater than)entity for, 49JSP operator, 494XPath operator, 253
>= (greater than, equal)JSP operator, 494XPath operator, 253
# (hash mark), in character references, 50- (hyphen), in XML markup, 43< (less than)
entity for, 49JSP operator, 494
SAX processing, 127XPath operator, 253
<= (less than, equal)JSP operator, 494XPath operator, 253
<!...> (less than, exclamation point), in DTDs, 53
<?...?> (less than, question mark), in XML markup, 34–35
<...> (less than...greater than), in XML markup, 31
- (minus sign)JSP operator, 494XPath operator, 253
% (percent sign)in entity names, 67JSP operator, 494
+ (plus sign)DTD qualifier, 53JSP operator, 494XPath operator, 253
? (question mark), DTD qualifier, 53" (quote), entity for, 49/ (slash), JSP operator, 494_ (underscore)
Java localization classes, 819in XML markup, 43
| (vertical line)in DTDs, 54XPath operator, 253
|| (vertical lines), JSP operator, 494[ ] (square brackets)
JSP operators, 491–492XPath pattern matching, 250
Index
J2EETutorial.book Page 1405 Thursday, June 3, 2004 10:26 AM
1406 INDEX
AAbstract document model, 248Abstract schemas, 835
container-managed persistence, 835–836defined, 1016definition, 1016, 1365deeployment descriptors, 835deploytool, 978EJB QL, 1015hidden from clients, 840name, 1001, 1365names, 1016naming conventions, 847type, 1016types, 1016
Access control. See also SOAP.anonymous access, 1088, 1365CMP example, 942–943databases, 21, 100–104, 446–447definition, 1365entity beans, 844–845JavaServer Faces components, 815–816JTree child nodes, 217security
unauthenticated access, 1145unrestricted access, allowing, 1094
session beans, 844–845Web-tier security, 1094XML registry, 394–395
Access methodsexamples, 949, 976local interfaces, 947persistent fields, 836, 943primary keys, 983relationship fields, 836, 943
ACID, 1365acknowledge method, 1194Action events, 652–653, 655, 657, 686, 711,
747ActionEvent class, 685–686, 712, 747,
749, 757, 768, 775, 789actionListener attribute, 657, 685,
711, 719–721, 749, 763, 768, 775, 789
ActionListener class, 668, 711, 747
ActionListener implementation, 749actionListener tag, 678, 710–712, 763ActionSource interface, 721processAction(ActionEvent)
method, 749referencing methods that handle action
events, 721, 757writing a backing-bean method to handle
action events, 757ActionEvent, 721, 749, 757ActionListener, registering, 711–712ActionListener class, 749–750ActionSource interface, 646Activation, 1365. See also passivation.AdapterNode class, 195–200Adapters, 195addChildElement method, 349addClassifications method, 406addExternalLink method, 413Address book, exporting, 265Addressing XPath, 249–250, 251, 252addServiceBindings method, 407addServices method, 407addTextNode method, 349Admin Console, 26. See also Application
Server.debugging, enabling, 29definition, 26deploying Web modules, 90, 91log viewer, opening, 29server log, viewing, 29starting, 27target server, changing, 1112users, adding to Application Server, 1089
Administered objects, 1163creating, 1007–1008, 1178–1180definition, 1158in J2EE applications, 1213J2EE applications and, 1213for multiple systems, 1188–1189programming model, 1158, 1163removing, 1009synchronous message receives,
1178–1180Administration servers, 25
J2EETutorial.book Page 1406 Thursday, June 3, 2004 10:26 AM
INDEX 1407
Advertising a service, 1259–1263afterBegin method, 1052afterCompletion method, 1052–1053Aggregate functions, 1042–1043Aliases, Web components, 96–97&, ampersand entity, 49Ampersand (&)
entity for, 49SAX processing, 127
Ampersands (&&), JSP operator, 494and, XPath operator, 253Anonymous access, 1088, 1365Ant tool. See asant tool.ANY keyword, 55APIs (application programming interfaces)
See also DOMSee also JAXRSee also JAX-RPCSee also JMSSee also SAXSee also SOAPSee also XSLTby container type, 16–17ContentHandler, 108DefaultHandler, 108DTDHandler, 109EntityResolver, 109ErrorHandler, 108Java Logging APIs, documentation, 28JavaMail API, 18–19JAXP (Java API for XML Processing)
definition, 1379libraries, 106, 113overview, 19
JDBCaccessing databases from Web applica-
tions, 100–101data sources, 1329definition, 1381overview, 21resource connections, 1077resource manager, 1076resources, 1077transactions, 1058–1061, 1069
JTA (Java Transaction API)definition, 1379overview, 18transactions, 1063–1064, 1069
overview, 16–23SAAJ (SOAP with Attachments API for
Java). See also SOAP.connections, 344–345definition, 1394overview, 20, 340SOAPConnection objects, 344–345uses for, 339
SAXParser, 107SAXParserFactory, 107SAXReader, 107StAX (Streaming API for XML), 1345
&apos, apostrophe entity, 49appclient tool, 26Applet containers, 10, 1365Applets, 4, 6. See also applet containers;
applications.definition, 1365JSP pages, 508–510overview, 4
Application architects, JavaServer Faces technology, 635
Application assemblers, 15–16, 1365Application client containers, 10
definition, 1365overview, 10tools, 26
Application client modules, 13, 1366Application clients, 5, 858
coding, 859compiling, 861creating, 858–863definition, 1365deployment descriptors, 13developer role, 15Duke’s Bank, 1310, 1312, 1317
classes, 1311running, 1338
enterprise bean reference, specifying, 862–863
J2EETutorial.book Page 1407 Thursday, June 3, 2004 10:26 AM
1408 INDEX
Application clients (Continued)enterprise bean references, examples,
1055–1056, 1062, 1067examples, 333, 860, 1004. See also book-
store example; Coffee Break example; online banking example.
JAR files, 858locating local Web services, 333–336overview, 3–5packaging, 334, 861–862running, 869thin versus thick, choosing, 5
Application configuration resource filesdescription, 792making available, 792–793specifying path to, 814–815
Application Deployment Tool. See deploy-tool.
Application development role, 14–16, 634–635
Application exceptions, 901–902Application processing instructions, 35–36,
46–47Application programming interfaces (APIs).
See APIs.Application Server. See also Admin Con-
sole.Admin Console, starting, 27asadmin utility, starting/stopping, 25, 27authorized users, adding, 1089. See also
security.connection factories, JNDI subcontexts,
1076creating data sources, 102, 1079creating mail sessions, 1082debugging applications, 28–29default domain, 25deployment descriptor for, 12–13deploytool utility, starting, 27digital certificates, 1115, 1119–1120enabling debugging, 29help, where to find, 25JavaServer Faces, 24–25JSTL, overview, 24
overview, 23–29password, specifying, 25PointBase database server, starting/stop-
ping, 28port number, 25server log, 25, 28–29server logs, 28starting, 25starting/stopping, 25stopping, 27technologies, overview, 24–25tools, 25–26tools, overview, 25–29user interface technologies, 24user name, specifying, 25--verbose flag, 28
Applications. See also applets.client-tier security, 1145–1146component providers, 15, 1366components
component-managed sign-on, 1148container-managed sign-on, 1147EIS-tier security, 1147–1149resource adapter security, configuring,
1148–1149configuration resource files. See also Jav-
aServer Faces.definition, 1366description, 792making available, 792–793specifying path to, 814–815
data flow, managing. See JavaBeans com-ponents.
deployer and administrator role, 16JavaServer Faces technology
backing beans, 642–644buttons, 639commandButton tag, 639creating pages, 638–640data validation, 640definition, 633–634development process, 635–637displaying error messages, 640form tag, 639
J2EETutorial.book Page 1408 Thursday, June 3, 2004 10:26 AM
INDEX 1409
input forms, 639inputText tag, 639managed bean declarations, 643–644message tag, 640page navigation, 640–641text fields, 639validateLongRange tag, 640
overviewAdmin Console, 27APIs, 16–23Application Server, 23–29components, 3–8containers, 8–10debugging, 28–29development roles, 14–16distributed, 2–3installing, 16managing, 27packaging, 12–14Web services, 10–12
applicationScope object, 493Application-specific objects, 488apply-templates instruction, 284Architecture. See also J2EE Connector
architecture.JAXR (Java API for XML Registries),
391–393JMS (Java Message Service) API,
1158–1161Archiving, 40–41, 1366Arithmetic functions, 256Arithmetic operators, 494Array properties, initializing, 799Arrays, 325, 557<article> document type, 279asadmin, 26asadmin start-domain --verbose
domain1, 25asadmin stop-domain domain1, 27asadmin utility
definition, 26deploying WAR files, 92deploying Web modules, 90–91starting/stopping, 25, 27
asant, 26examples, 856
asant tool, 26, 1366Assembly process, 8–9. See also containers.Asterisk (*)
DTD qualifier, 53JSP operator, 494XPath operator, 253XPath wildcard, 252
Asynchronous message consumption, 1161compiling, 1185JMS client example, 1183JMS provider, starting, 1185message listener, 1184–1185overview, 1183packaging, 1185–1186receiving program, 1184running, 1186–1187sending program, 1183–1184writing the programs, 1183–1185
Asynchronous message processing, 838–840
Asynchronous messages, 1155, 1161At sign asterisk (@*), XPath wildcard, 252AttachmentPart class, 343, 358
creating objects, 358headers, 359
AttachmentPart object, 358–360accessing, 360–361adding content, 358–360creating, 358–361
Attachments, 342adding, 358SAAJ example, 385
Attachments, SAAJ messages, 341–342, 342–344, 385–387
Attachments.java, 385–387ATTLIST tag, 58attribute directive, 579, 580attribute element, 571–572, 595–596Attribute node, 248Attribute nodes, 207Attribute specification parameters, 60Attribute value template, 298
J2EETutorial.book Page 1409 Thursday, June 3, 2004 10:26 AM
1410 INDEX
Attributes, 33, 43, 222adding to elements, 3creating, 236defining, 57–60defining in DTD, 57definition, 1366description, 33DOM, creating, 236encoding, 35JSP custom tags
defining in XML element body, 571–572
dynamic, 570–571, 588–589fragment, 569–570, 584–588jsp:attribute element, 571–572simple, 569, 585–586, 586–588
namespaces, 71SAAJ messages
actor attributes, 363–365header attributes, 362–363mustUnderstand attribute, 365–366overview, 361–362
SOAP envelope, 351standalone, 35tag, declaring, 579transactions
definition, 1046–1047list of, 1050setting, 1049–1050
types of, 59validation, 600–602version, 35vs. elements, 75–76in XML tags, 33
Attributes referencing backing bean meth-ods, 719
action attribute, 639, 657, 668, 719–720actionListener attribute, 657, 719–721validator attribute, 719–720, 722valueChangeListener attribute,
719–720, 722-723Attribute-specification parameters, 59Authentication, 1088, 1114, 1361. See also
JAX-RPC; security.
application clients, configuring, 1151basic, 1100, 1128
configuring, 1097–1098example, 1126–1133overview, 1100–1101protecting passwords, 1113–1114
client, 1123client, configuring, 1151client-certificate
adding using deploytool, 1141client certificate, creating, 1120–1121enabling, 1137–1138example, 1133–1142overview, 1102–1103
configuring, 1093, 1095, 1105definition, 1088, 1114, 1366digest, 1105entities, 1125form-based
configuring, 1097–1098example, 1105overview, 1101–1102protecting passwords, 1113–1114and SSL support, 1113–1114
form-based, example, 1105–1114mutual, 1103–1105, 1123–1124,
1133–1142example, 1133
overview, 20, 22, 1088–1089, 1100–1105Web resources
configuring, 1105Duke’s Bank, 1326form-based, 1101HTTP basic, 1100, 1105, 1126SSL protection, 1114
XML registries, 404for XML registries, 404
Authorization, 1088, 1361constraints, 1366definition, 1088, 1366overview, 20, 22
Authorized users, 8–9. See also containers; security.
AUTO_ACKNOWLEDGE mode, 1193
J2EETutorial.book Page 1410 Thursday, June 3, 2004 10:26 AM
INDEX 1411
B<B> (bold) tag, 280B2B (Business-to-business), 1366Backing bean methods, 642, 720, 755, 775,
784ActionEvent, 749, 757attributes referencing. See attributes refer-
encing backing bean methods.navigation, 755–757overview, 755referencing, 719–722. See also referenc-
ing backing bean methods.validation, 757–758ValueChangeEvent, 748, 758–759writing. See writing backing bean meth-
ods.Backing bean properties, 642, 657–658, 706,
730, 775, 784bound to component instances, 739-740properties for UISelectItems composed
of SelectItem instances, 737–738
UIData properties, 732UIInput and UIOutput properties, 731UISelectBoolean properties, 734UISelectItems properties, 737UISelectMany properties, 734UISelectOne properties, 735
Backing beans, 634, 642, 651, 653, 656-659, 755, 763
See also enterprise beansSee also entity beansSee also message-driven beansSee also session beansbinding component values and instances,
657–659configuring
array properties, initializing, 799custom converters, registering,
804–805custom validators, registering, 803–804graph (tree) of beans, 799–801implicit objects, referencing, 796–797initialization parameters, referencing,
796–797
initializing properties, 795–796instances of List, 795instances of Map, 795list properties, initializing, 799list-entries element, 795lists, initializing, 801–802managed bean declarations, 643–644managed bean properties, initializing,
799–801managed-bean element, 793–795managed-bean-class element, 794managed-bean-scope element, 794managed-property element, 795–796map properties, initializing, 797–798map-entries element, 795, 797–798maps, initializing, 801–802messages, registering, 802–803overview, 793
creating, 659, 793–795definition, 634, 1366–1367developing, 642–643instantiating, 793–802managed bean declarations, 643–644managing, 656–659method binding. See method binding.method-binding, 657methods. See backing bean methods.properties. See backing bean properties.properties, binding to component
instances, 718–719storing, 659value binding. See value binding.value-binding, 657values, binding to component instances,
683Backus-Naur Form (BNF), 1016,
1023–1026Bank account example. See BMP examples;
online banking example.BankBean example. See examples, con-
tainer-managed transactions; online banking example.
Base64 encoding, 1101Basic authentication, 1367Basic logic, 183
J2EETutorial.book Page 1411 Thursday, June 3, 2004 10:26 AM
1412 INDEX
Bean instances, locating, 912–913Bean-managed persistence (BMP). See
BMP.Bean-managed transactions, 1217. See also
transactions, bean-managed.Beans
See backing beansSee enterprise beansSee entity beansSee message-driven beansSee session beans
Behavioral interfaces, JavaServer Faces technology, 646–647
BETWEEN expressions, 1035Bidirectional relationships, 837–838BigDecimal data types, 1044BigInteger data types, 1044Binary entities. See unparsed entities.Binding, 40
backing beans to component values and instances, 657–659
component instances tobean properties, 718–719bean values, 683
component values toexternal data sources, 683, 714–718implicit objects, 717–718properties, 715–716
data to objects, 686–689JavaServer Faces technology, 1367XML, 40, 1367
binding attribute, 683Binding templates
adding to an organization with JAXR, 407finding with JAXR, 403
Blanks. See whitespace.BLOB databases, 991BMP (bean-managed persistence). See also
CMP.defined, 834definition, 1367entity beans, 834examples, 903, 924, 932isolation levels, 1071
relationships, 834vs. container-managed, 941
BMP examplesbean instances, locating, 912–913business methods, 910–913, 916–917creating, 903–904data source, defining, 917database calls, 913–914database table, creating, 917–918deploying the application, 918deploytools utility, 937entity bean class, 904entity beans
deleting, 907finder methods, creating, 914–916finder methods, description, 908–910locating, 908–910, 912
entity state, inserting in database, 905–906
home interface, 914–916home methods, creating, 914–916home methods, description, 912–913instance variables, 905–908mapping table relationships
child table, entity bean, 927–929child table, helper class, 923–926foreign keys, 919–922many-to-many, 930–933one-to-many, 922–930one-to-one, 919–922
primary key, returning, 905–906primary key class, 934–935primary keys, 935–936remote interface, 916–917running, 917–918session beans, creating and packaging,
937BNF (Backus-Naur Form), 1016,
1023–1026Bodies, JSP custom tags, 572body-content attribute, 579body-content element, 595BodyTag interface, 623BodyTagSupport class, 623
J2EETutorial.book Page 1412 Thursday, June 3, 2004 10:26 AM
INDEX 1413
Bookstore exampleapplet, 509common classes and database schema,
100database, 100–104image map, 765–770iteration tags, 608–610JavaServer Faces, 659–662, 672–675JavaServer Faces technology version,
659, 672-675JSP custom tags
bookstore examples, 564–568dynamic attributes, 588–589fragment attributes, 586–588simple attributes, 585–586, 586–588variables, 572–573
JSP documents, 516–521JSP documents in, 516JSP pages, 476–482JSP tag files, variable synchronization,
582–584JSP with basic JSTL version, 476JSP with example custom tags, 564JSP with JSTL SQL tags, 538JSP with JSTL XML tags, 551JSTL (JavaServer Pages Standard Tag
Library), 538–541MVC architecture, 477populating the database, 101programming tag handlers, 608–616scripting, 618–619servlet version, 436servlets, 436–441tag files, variable synchronization,
582–584template tag library, 610–613use of JSTL tags, 478user interface, 659–662variable synchronization, tag files,
582–584Boolean, 252
functions, 256boolean components, defining, 697boolean function, 256
Boolean functions, 256Boundaries, transactions, 1046, 1073BufferedReader class, 449Buffering, 485Build files, 1367bundle tag, 554–555Business components, 3, 6–7. See also enter-
prise beans.Business logic, 830, 912
in applications. See enterprise beans.definition, 1367overview, 3, 6–7
Business methods, 841, 860, 863client calls, 877CMP example, 945defining, 916–917definition, 1367description, 910–911examples, 910, 945exceptions, 878invoking, 860, 877–878, 912–913local interfaces, 947message-driven beans, 1005requirements, 878signature, 878transactions, 1049, 1052, 1068, 1071
Business objects, 833, 903Business tier, 2–3, 5–7. See also enterprise
beans.Businesses
contacts, 405creating with JAXR, 404finding
by name with JAXR, 400, 421using WSDL documents with JAXR,
424finding by classification with JAXR, 401,
421keys, 405, 411publishing with JAXR, 408removing with JAXR, 411, 421saving with JAXR, 420, 422, 424
BusinessLifeCycleManager interface, 392, 399, 404
J2EETutorial.book Page 1413 Thursday, June 3, 2004 10:26 AM
1414 INDEX
BusinessQueryManager interface, 392, 399
Business-to-business (B2B), 1366Buttons, user interface, 639, 685BytesMessage interface, 1171
Ccall method, 344–345, 353Call object, 330Callback methods, 1367Caller principals, 1367Calling procedures remotely, 19. See also
JAX-RPC.Canceling timers, 893–894Capability levels, JAXR, 390capture-schema, 26capture-schema tool, 26Cascade deletes, 977, 991, 1368Cascading style sheet (CSS), 1370Case sensitivity, XML, 43Case studies. See examples.catch tag, 544, 549CCI. See J2EE Connector architecture, CCI.CCI (Common Client Interface), 1362–1363CDATA, 212, 222
versus PCDATA, 54CDATA node, 211CDATA sections
definition, 1368DOM, 222JSP documents, 528nodes, converting to Text nodes, 212in SAX, 147–149, 164. See also lexical
events.text with XML-style syntax, 51–52
ceiling function, 256Certificate authority, 1102, 1368certificate realm, 1088–1089Certificates. See digital certificates.Chained filters, 307Character encoding, 824–825Character encodings, 824, 1341
ISO 8859, 824
ISO-8859-1, 1341US-ASCII, 1341UTF-8, 824, 1341UTF-16, 1342
Character events, 125–127Character references, 50Character sets, 823–824
IANA registry, 1342Unicode, 824US-ASCII, 824
characters method, 119Checkboxes, 697–698, 703–704Child access, controlling, 217choose tag, 544, 546, 550Class files, modifying, 870–871Classes
custom UI components, 778–786including in JavaServer Faces applica-
tions, 817Java localization, 819–820JavaServer Faces technology, 645–646
Classic tags, 623tag handlers, 623
with bodies, 626defining variables, 629–630how invoked, 625life cycle, 625methods, 624shared objects, 627, 629variable availability, 629
Classic tags, scripting, 623Classification schemes, 421–423
finding with JAXR, 406ISO 3166, 400NAICS, 400, 421postal address, 412, 421publishing with JAXR, 412, 421removing with JAXR, 423UNSPSC, 400user-defined, 412
Classifications, creating with JAXR, 406Classifications (taxonomies)
adding, 406defining, 412–414
J2EETutorial.book Page 1414 Thursday, June 3, 2004 10:26 AM
INDEX 1415
finding organizations by, 401–403postal addresses, specifying, 414–416
Classifications (XML registries), 406Client applications
access, entity and session beans, 840–845invoking. See appclient tool.
Client applications, JMS, 1173packaging, 1181, 1185running, 1182, 1186running on multiple systems, 1187
Client authentication, 20, 1151. See also JAX-RPC.
Client certificates, 1120–1121. See also dig-ital certificates.
Client ID, for durable subscriptions, 1200Client machines, 2–3Client requests, 11. See also SOAP.Client state
accessing sessions, 464associating objects with sessions, 465notifying session objects, 465session management, 466session tracking, 466–467
Client tier, 2–6CLIENT_ACKNOWLEDGE mode, 1194Client-certificate authentication
adding using deploytool, 1141client certificate, creating, 1120–1121definition, 1368enabling, 1137–1138example, 1133–1142overview, 1102–1103
Clients, authenticating, 1102, 1123, 1133Clients, JAXR, 391
examples, 417implementing, 393
Clients, Web servicesapplication, 333–336creating, 314–324DII (dynamic invocation interface),
329–333dynamic proxy, 326–329static stub, 321–324unknown until runtime, 329–333
CLOB databases, 991close method, 354CMP (container-managed persistence), 835.
See also BMP.cascade deletes, 991definition, 1369EJB QL, 835, 990, 1015EJB QL (Enterprise JavaBeans Query
Language), 1044entity beans, 834, 835–838examples, 939isolation levels, 1071one-to-many, 987one-to-one, 986overriding, 17, 21persistent fields, 943primary keys, 987
compound, 988primitive types, 987unknown, 987
relationship fields, 943relationships, 834table mapping, 989vs. bean-managed, 941
CMP examplesabstract schema name, selecting, 1001database tables, creating, 1002deploytool utility, 1000–1002finder methods, defining EJB QL queries,
1001inventory and ordering
bean relationships, 985–987BLOB databases, 991building, 992–1000CLOB databases, 991configuring entity bean relationships,
995–996creating modules, 993–995databases, 989, 992deploying, 999entity beans, 989, 991, 995–996finder methods, 990finder queues, 996–997finding orders, 990, 996–997
J2EETutorial.book Page 1415 Thursday, June 3, 2004 10:26 AM
1416 INDEX
CMP (Continued)foreign keys, 987home methods, 990one-to-many relationships, 987one-to-one relationships, 986packaging, 993–999primary keys, 987–989running, 992–1000selecting methods, 990selecting orders, 990, 996–997selector queues, 996–997self-referential relationships, 985–986setting enterprise bean references, 999setting transaction attributes, 997structure, 984unidirectional relationships, 987
persistent fields, selecting, 1001relationships, defining, 1002select methods, defining EJB QL queries,
1001CMP examples, team roster
access methods, 942–943building, 958–969business methods, 945container-managed vs. bean-managed,
941–942create methods, defining, 946–947data source, creating, 959database tables, creating, 958–959EJB QL queries, adding, 964–966enterprise application
creating, 960deploying, 971packaging, 960, 970–971running, 971–972
enterprise beanscreating, 960establishing relationships, 966–967field mappings, 968packaging, 961–969references, setting, 968–971relationship mappings, 968
entity bean class, 941entity bean methods, 945–946
finder methods, defining, 946–947finder methods, description, 944home methods, defining, 946–947JAR file, viewing settings, 974–980local home interface, 946–947local interface, 947objects, getting, 944overview, 939–940packaging, 961–964persistent fields, 943players
adding to a team, 949–950adding to teams, 949–950copying a team roster, 953–955creating, 948–949dropping from a team, 950–951finding by position, 955–956getting a team roster, 952–953getting sports of, 956–958removing, 950, 950
primary key class, 982primary key values, generating, 983–984primary keys, 980–984relationship fields, 943rosters
copying, 954–955getting, 952–955viewing, 974
running, 958–969select methods, 944settings, viewing, 972–980state information, getting, 944table schema, capturing, 959–960transaction attributes, setting, 968
CMR. See container-managed relationships.Coding
application client, 859enterprise bean class, 855–856enterprise beans, 854home interface, 855remote interface, 855Web client, 863–864
Coffee Breakbuilding shared classes, 1292
J2EETutorial.book Page 1416 Thursday, June 3, 2004 10:26 AM
INDEX 1417
JavaServer Faces server, 1284, 1290beans, 1288–1289building, packaging, and deploying,
1297JSP pages, 1285, 1287resource configuration, 1289
JAX-RPC service, 1257, 1265building, packaging, and deploying,
1292, 1294deleting from registry, 1263, 1265implementation, 1258interface, 1257publishing in registry, 1259, 1263
removing, 1300running the client, 1298SAAJ clients, 1266SAAJ service, 1265, 1280
building, packaging, and deploying, 1294
XML messages, 1266server, 1280, 1284
beans, 1282, 1284building, packaging, and deploying,
1295–1296JSP pages, 1281
server interaction, 1255setting service port numbers, 1291setting up the registry server, 1291shared files, 1256source code, 1290
Coffee Break examplebacking beans, 1289billing information, collecting, 1281,
1286–1287checking out, 1288–1289client application, running, 1299–1300Coffee Break server
building, 1295–1296deploying, 1295–1296JavaBeans components, 1282–1284JSP pages, 1281packaging, 1295–1296running, 1295–1296
common classes, 1292
common code, 1256–1257delivery information, collecting, 1281,
1286–1287JavaBeans components, 1282JavaServer Faces version, 1284–1290,
1297–1298JAX-RPC service, 1257–1265, 1282,
1292–1294JSP pages, 1286–1287order confirmation
checking completeness, 1281, 1282–1284, 1287, 1288–1289
delivery and billing information, 1281, 1286–1287
displaying suborders, 1281, 1282–1284, 1287
listing objects, 1282retrieving, 1273returning, 1279–1280
ordering coffee, 1270–1273orders, creating, 1270–1273price list
extracting, 1268–1270reloading, 1284returning, 1274–1279
Registry Server, setting up, 1291removing the application, 1300SAAJ service
building, 1294–1295deploying, 1294–1295message types, 1265–1266overview, 1265–1266packaging, 1294–1295request, sending, 1267–1268request-response message, 1265–1266running, 1294–1295SAAJ client, 1266–1273SAAJ service, 1274–1280
server, 1282–1284setting the port, 1291shopping cart, 1281–1282, 1285–1286WARs, 1292
Collaboration, JSTL tags, 542–543Collection member expressions, 1037
J2EETutorial.book Page 1417 Thursday, June 3, 2004 10:26 AM
1418 INDEX
Colon (:), in XML markup, 43, 47Combo boxes, 699–700, 703–704Command line, argument processing, 119commandButton tag, 639, 685Command-line administration utility. See
Admin Console.Command-line tools, list of, 26commandLink tag, 686Commands, digital certificates, 1121Comment, 42, 212, 222
echoing, 167node, 248
comment method, 164Comment nodes, 206Comments
definition, 1368DOM, 222DOM, ignoring, 212echoing, 164, 167–168EJB QL (Enterprise JavaBeans Query
Language), 1044HTML. See <NOTE> element.transforming XML to HTML, 295XML, 34, 42
Commerce XML (cxml), 1354Commit, 1368commit, 1057–1058, 1063, 1069commit method (JMS), 1204Commit transactions, 1046, 1068Commits. See transactions, commits.Common Client Interface (CCI), 1362–1363Common Object Request Broker Architec-
ture (CORBA), 1370Common Secure Interoperability version 2
(CSIv2), 1143Compatibility test suite (CTS), 1370Compiling, 128
application clients, 861, 898BankBean example, 1053enterprise bean source files, 856JSP pages, 483–484online banking example, 1330SAX, 128–135TellerBean example, 1064
WarehouseBean example, 1059Web client, 865
Component, renderer, tag combinations, 764–765
Component binding, 658, 714, 718, 730advantages of, 658binding attribute, 642, 658, 683, 714,
718Component contracts, 1368Component properties
bound to component instances, 739–740bound to component values, 730–739FacesMessage, 743–744localization, 741–744message factory, 743overview, 730resource bundles, 741, 743–744UIData, 732–733UIInput, 731–732UIOutput, 731–732UISelectBoolean, 734UISelectItem, 736UISelectItems, 737–739UISelectMany, 734–735UISelectOne, 735–736user input, selecting from a list, 734–739value binding, 783–784
Component rendering model, 645, 647-651, 647–651
custom renderers. See custom renderers.decode method, 666, 712, 745, 783, 788decoding, 763, 778delegated implementation, 763direct implementation, 763encode method, 746encodeBegin method, 781encodeChildren method, 780–781encodeEnd method, 781, 786encoding, 763, 778HTML render kit, 777, 808render kit, 647, 808renderer, 761Renderer class, 647, 712, 808Renderer implementation, 809
J2EETutorial.book Page 1418 Thursday, June 3, 2004 10:26 AM
INDEX 1419
RenderKit class, 647RenderKit implementation, 809
Component values, binding toexternal data sources, 683, 714–718implicit objects, 717–718properties, 715–716
Component writers, 635Component-managed sign-on, 1148, 1368Components. See also JavaServer Faces,
custom UI components.assembly, 8–9. See also containers.custom, 726–727identification, 681instances, binding to
bean properties, 718–719bean values, 683
interfaces. See containers.J2EE components
definition, 1377overview, 3–8versus standard Java classes, 3–4
JavaServer Faces UI components, 1380overview, 3–8reusing, 12versus standard Java classes, 3–4user interface component model. See also
JavaServer Faces.action events, 652behavioral interfaces, 646–647classes, 645–646component rendering model, 647–651conversion model, description,
651–652custom components. See JavaServer
Faces, custom UI components.data validation, 654data-model events, 653event and listener model, description,
652–653mapping classes to tags, 647–651overview, 644–645render kit, 647tags, list of, 648–651UICommand class, definition, 645
UICommand class, tags, 648validation model, 654value-change events, 653
Component-specific services. See containers.Compound primary keys, 988–989Compression, 229com.sun.xml.registry.http.proxy-
Host connection property, 398com.sun.xml.registry.http.proxy-
Port connection property, 398com.sun.xml.registry.https.proxy-
Host connection property, 398com.sun.xml.registry.https.proxy-
Password connection property, 398
com.sun.xml.registry.https.proxy-Port connection property, 398
com.sun.xml.registry.https.proxy-UserName connection property, 398
com.sun.xml.registry.useCache con-nection property, 398
com.sun.xml.registry.userTaxonomy-Filenames connection property, 398, 414
concat function, 255Concepts
publishing with JAXR, 408, 423removing with JAXR, 424in user-defined classification schemes,
412using to create classifications with JAXR,
406Concurrent access, 1045Conditional expressions, 1033Conditional operators, 494Conditional sections, 66, 68Conditionalized DTDs, 78Confidentiality, 1114Configuration resource files. See application
configuration resource files.Configuring beans, 793-802
managed bean creation facility. See man-aged bean creation facility.
J2EETutorial.book Page 1419 Thursday, June 3, 2004 10:26 AM
1420 INDEX
Configuring JavaServer Faces applications, 635
Application class, 793, 802application configuration resource files,
634, 643, 655, 659, 685, 706–707, 715–716, 721, 750, 792, 805, 809, 811
Application instance, 742–743, 752, 775
attribute element, 804attribute-class element, 804attribute-name element, 804configuring beans. See configuring beans.configuring navigation rules. See config-
uring navigation rules.faces-config.xml files, 806including the classes, pages, and other
resources, 817including the required JAR files, 816javax.faces.applica-
tion.CONFIG_FILES context parameter, 792, 814
javax.faces.STATE_SAVING_METHOD context parameter, 815
registering custom converters. See regis-tering custom converters.
registering custom renderers. See register-ing custom renderers.
registering custom UI components. See registering custom UI compo-nents.
registering custom validators. See regis-tering custom validators.
registering messages. See registering mes-sages.
restricting access to JavaServer Faces components, 815
specifying a path to an application config-uration resource file, 814
specifying where UI component state is saved, 815
turning on validation of XML files, 816validateXML context parameter, 816verifying custom objects, 816
Configuring navigation rules, 805action methods, 807example navigation rule, 806from-action element, 807–808from-outcome value, 808from-view-id element, 807navigation-case element, 806, 808navigation-rule element, 806–807to-view-id element, 807–808
ConfirmerBean example, 1082–1083Connection, 1057–1058, 1069, 1073Connection class, 1362Connection factories
creating, 395deleting, 1191description, 1163–1164JNDI subcontexts, 1076looking up, 395resource manager connection factory,
1390Connection factories, JAXR, 395Connection factories, JMS
creating, 1007, 1178introduction, 1163looking up, 1004, 1163specifying for message-driven beans,
1228specifying for remote servers, 1188
Connection interface, 392Connection interface (JAXR), 392, 395Connection interface (JMS), 1165Connection interface methods, 1058–1059,
1069, 1073Connection management contract, 1361Connection pooling, 1077Connection pools, 1077Connection properties, JAXR, 396
examples, 395ConnectionFactory class (JAXR), 395ConnectionFactory interface (JMS), 1163Connections. See also resource connections.
JAXRconnection factory, 395creating, 395–396
J2EETutorial.book Page 1420 Thursday, June 3, 2004 10:26 AM
INDEX 1421
organizations, finding by classification, 401–403
organizations, finding by name, 400–401
overview, 393–394properties, 396–399registries, accessing, 394–395registries, querying, 399–400registry access, 394–395RegistryService object, 399service bindings, 403services, finding, 403
SAAJ (SOAP with Attachments API for Java), 344–345
secure, 1114service bindings, JAXR, 403
Connections, database, 1078Connections, JAXR
creating, 395setting properties, 395
Connections, JMSintroduction, 1165managing in J2EE applications, 1213
Connections, mail sessions, 1081Connections, SAAJ, 344
closing, 354point-to-point, 353
Connections, URL, 1083Connector architecture. See J2EE Connector
architecture; resource adapter modules.
Connector resource manager, 1076Connectors, 1369. See also J2EE Connector
architecture.Container trust relationships, 1151Container-managed persistence (CMP). See
CMP.Container-managed relationships, 985
bidirection, 940bidirectional, 837–838definition, 834deploytool, 975direction, 837–838, 842, 977
EJB QL, 838entity and session beans, 842examples, 940local access, 841many-to-many, 837many-to-one, 837multiplicity, 837, 940, 977one-to-many, 837, 1017one-to-one, 837, 1030self-referential, 985unidirectional, 837–838, 987
Container-managed sign-on, 1147, 1369Container-managed transactions. See trans-
actions, container-managed.Containers, 8
See also applet containersSee also application client containersSee also EJB containersSee also securitySee also Web containersAPIs, overview, 16–17configurable services, 9definition, 1369non-configurable services, 9overview, 8–10, 16–17services, 8services, overview, 8–9types, overview, 9–10vs. contents, 76
contains function, 255Content, 1369. See also Web components.Content (inline) elements, 296–302Content events, 123ContentHandler API, 108, 119–120ContentHandler interface, 119Contents vs. containers, 76Context, 249Context attributes, 1369Context interface, 859, 1076Context objects, 1076Context roots, 89–92, 868, 1369Contexts, 249Conversational state, 832, 1370Conversion functions, 256
J2EETutorial.book Page 1421 Thursday, June 3, 2004 10:26 AM
1422 INDEX
Conversion model, 645, 651-652, 731converter attribute, 690, 706–707,
723–724Converter implementations, 652, 705,
724, 745Converter interface, 744–746converter tag, 724converter tags. See converter tags.converterId attribute, 706–707, 724converters. See converters.converting data between model and pre-
sentation, 651javax.faces.convert package, 706model view, 745presentation view, 745
Conversion model, description, 651–652Conversions, immediate processing,
681–682convertDateTime tag, 707–709converter attribute, 690, 705Converter implementation classesBigDecimalConverter class, 706BigIntegerConverter class, 706BooleanConverter class, 706ByteConverter class, 706CharacterConverter class, 706DateTimeConverter, 706DateTimeConverter class, 706, 707-708DoubleConverter class, 706FloatConverter class, 706IntegerConverter class, 706LongConverter class, 706NumberConverter class, 706–707, 709-
710ShortConverter class, 706
converter tag, 705Converter tagsconvertDateTime tag, 707convertDateTime tag attributes, 708converter tag, 706–707, 723–724convertNumber tag, 707, 709convertNumber tag attributes, 709parseLocale attribute, 708
ConverterClient program source code, 860–861
Converters, 632, 634, 645, 658, 664–665, 705–710, 724, 744–747
custom converters, 652, 723–724standard converters. See standard
converters.Converting data. See conversion model;
XPath; XSLT.cookie object, 493Cooperating tags, 606–608, 627–629©r, copyright entity, 61CORBA (Common Object Request Broker
Architecture), 1370Core library, 541–549Core tagsconvertNumber tag, 709JavaServer Faces, 678–680XML, 551–552
count function, 254Country codes, ISO, 3166 400Cover, Robin, 40create method, 946–947, 1049, 1370
bean-managed persistence, 905compared to ejbCreate method, 878examples, 860, 876, 925life cycles, 847, 850requirements, 879, 915, 946
createClassification method, 406, 413createClassificationScheme method,
413createExternalLink method, 413createOrganization method, 405createPostalAddress method, 416createService method, 407createServiceBinding method, 407createTimer method, 893createValidator method, 754Credentials, 1370Cross-platform standard for data, 11CSIv2 (Common Secure Interoperability
version 2), 1143CSS (cascading style sheet), 1370CSS styles, specifying, 683
J2EETutorial.book Page 1422 Thursday, June 3, 2004 10:26 AM
INDEX 1423
CTS (compatibility test suite), 1370Custom
components, registering, 810–811converters, registering, 804–805objects. See also JSP, custom tags.
components, 726–727converters, 724overview, 723–724user interface components. See Java-
Server Faces, custom UI compo-nents.
validators, 725–726verifying, 816
renderer, registering, 808–810validators, registering, 803–804
Custom converters, 652, 723Converter implementation, 804creating, 744-747getAsObject method, 745getAsObject(FacesContext, UICom-
ponent, String) method, 745getAsString method, 746getAsString(FacesContext, UICom-
ponent, Object) method, 745registering. See registering custom
converters.using, 724
Custom objectscustom converters, 723–724. See also
custom converters.custom renderers. See custom renderers.custom tags. See custom tags.custom UI components. See custom UI
components.custom validators, 725. See also custom
validators.using, 723-727using custom converters, renderers and
tags together, 764Custom renderers, 761–762, 764, 808
creating the Renderer class, 786-788determining necessity of, 763getName(FacesContext.UICompo-
nent) method, 782
javax.faces.render.Renderer class, 771
performing decoding, 783performing encoding, 780registering. See registering custom
renderers.ResponseWriter class, 782, 787startElement method, 782writeAttribute method, 782
Custom tags, 563–564, 654, 762, 764. See also classic tags; simple tags.
attributes, validation, 600cooperating, 573createValidator method, 754creating, 753-755creating tag handler, 772creating using JSP syntax, 573Duke’s Bank, 1320getComponentType method, 771, 774getRendererType method, 771, 776, 788identifying the renderer type, 786release method, 776and scripting elements, 623setProperties method, 771, 775tag handler class, 753–754, 770–772tag library descriptor, 754, 771, 777tag library descriptors. See tag library
descriptors.template tag library, 565UIComponentTag class, 771, 774UIComponentTag.release method, 776ValidatorTag class, 753–754writing the tag library descriptor, 754
Custom UI components, 653, 723, 761–762, 764, 788
creating component classes, 778-000delegating rendering, 771, 786-788determining necessity of, 762getId method, 782handling events emitted by, 788queueEvent method, 783registering. See registering custom UI
components.
J2EETutorial.book Page 1423 Thursday, June 3, 2004 10:26 AM
1424 INDEX
Custom UI components (Continued)restoreState(FacesContext,
Object) method, 785saveState(FacesContext) method,
785saving state, 771, 785setValueBinding method, 775specifying where state is saved, 815steps for creating, 771using, 726
Custom validators, 725, 751createValidator method, 754custom validator tags, 753-755implementing a backing-bean method to
perform validation, 750implementing the Validator interface,
751registering. See registering custom valida-
tors.using, 725validate method, 751, 758Validator implementation, 654, 751,
753–755, 803Validator interface, 750validator tag, 750, 753ValidatorTag class, 753–754
Cxml (Commerce XML), 1354
DData, 176
binding to objects, 686–689columns, 684definition, 1370element, 57encrypting, 1133encryption, 20, 1102. See also JAX-RPC.flow management. See JavaBeans compo-
nents.granularity, entity and session beans,
844–845normalizing, 77processing, 39structure, arbitrary, 264tables, 694–696
transformations. See XPath; XSLT.types, 252–253CDATA, 222element, 221entity reference, 222text, 222
validation. See validating.visibility, 76
Data integrity, 1045Data model, 248Data persistence. See also BMP; CMP.
and entity beans, 7overriding, 9, 17, 21
Data processing with XML, 39Data sources, 1077
connecting to from J2EE components, 1078
creating, 102–103, 959, 1079defining, 917definition, 1077getting a connection, 101looking up with JNDI, 101mapping to resource references, 104
Data structure design (XML)attributes vs. elements, 75–76conditionalized DTDs, 78containers vs. contents, 76data visibility, 76factoring out DTDs, 78modularizing DTDs, 78normalizing data, 77–78normalizing DTDs, 78online resources, 74stylistic choices, 76–77using existing schemas, 74
Database schema, 992Database server. See PointBase database
server.Databases. See also persistence.
accessing. See also transactions.multiple databases, 1071–1072servlets, 446–447updating multiple databases,
1071–1072from Web applications, 100–104
J2EETutorial.book Page 1424 Thursday, June 3, 2004 10:26 AM
INDEX 1425
bean-managed persistence, 903, 913BLOB, 991BLOBs, 991business methods, 910calls, 913–914capturing schema, 992child tables, 923–929clients, 830, 840CLOB, 991CLOBs, 991connecting to from J2EE components,
1078connections, 103–104, 848, 878, 901,
1068, 1078–1080connectivity, 21. See also JDBC.creating tables, 903, 917, 958, 980, 992data recovery, 1045data sources, 102–104DataSource objects, 101deleting rows, 907Duke’s Bank tables, 1308EIS tier, 2entity beans, 833exceptions, 901foreign keys, 836, 919inserting rows, 905isolation levels, 1070mapping entity beans to multiple tables,
989message-driven beans and, 839multiple, 1063, 1071online banking example
creating, 1329reading data from, 1315–1317servers, setting up, 1328–1329tables, 1308–1309validating updates, 1315–1317
persistent fields, 835populating, 101–102portable beans, 835primary keys, 919, 933read-only data, 833referential constraints, 920relationships for bean-managed persis-
tence, 919
resource references, 103–104synchronizing with entity beans, 907table creation, 992table relationships
many-to-many, 930one-to-many, 922one-to-one, 919
tables, creating, 917–918, 958–959, 1002transactions. See transactions.
Data-model events, 653DataSource interface, 101, 1077DataSource objects, 101, 1077Date and time
conversion, 707–709EJB QL (Enterprise JavaBeans Query
Language), 1044localization formats, 823
Date tags, 556dateParam tag, 557–558DateTime converter, 707–709DDP (document-driven programming),
39–40, 1370Deactivation, JSP pages, 490, 511–512Debugging
See also error handlingSee also errorsSee also exceptionswith debuggers, 29enabling, 29JPDA (Java Platform Debugger Architec-
ture), 29overview, 28–29with server log, 28–29socket port, default, 29
Declaration, 34, 42Declarations
definition, 1370JSP documents, 530scripting, 620–621XML, 42. See also DTD.
Declarative security, 1087, 1370Decoding custom UI components, 783<DEF> (definition) tag, 280DefaultHandler API, 108DefaultHandler method, overriding, 145
J2EETutorial.book Page 1425 Thursday, June 3, 2004 10:26 AM
1426 INDEX
Defining text, 54Delegation, 1371deleteOrganizations method, 411Deleting
cascading deletes, 991, 1368concepts, 424–425connection factories, 1191entity beans, 907JAXR classification schemes, 423JAX-RPC service from the registry,
1263–1265registry entries, 1263–1265
Delivering applications. See packaging.Delivery modes, JMS, 1197JMSDeliveryMode message header field,
1170DeliveryMode interface, 1197Demarcating transactions, 1046, 1073Deployed Web modules, listing, 92Deployer, 1371Deployer roles, 16Deployment. See also deploytool utility;
packaging; undeploying.BMP examples, 918CMP examples, 971, 999definition, 1371J2EE applications, 868–869, 872JAXR clients, in J2EE applications, 432JAX-RPC (Java API for XML-based
RPC), 320–321message-driven beans, 1010–1014overview, 12–14session beans, examples, 883–884, 888,
899–900shopping cart example, 883–884timer service example, 899–900WAR files, 92Web modules, 89–92, 91Web services, 320–321, 888
Deployment descriptor files, 845–846Deployment descriptors, 12. See also
packaging.abstract schema, 835container-managed persistence, 942
creating, 845, 1092–1100definition, 1371EJB QL, 1015enterprise beans, 845, 847example, 1131generating. See deploytool utility.overview, 12–14portable, 12primary key class, 933resource adapter, 13–14runtime, 12tools, 26transaction attributes, 1049validating. See verifier tool.viewing, 1092, 1112Web application, 83, 86–87, 811
runtime, 87deploytool utility, 26. See also deploy-
ment.authentication method, configuring, 1105basic authentication, 1131–1132bean-managed persistence, 937client-certificate authentication, 1141components that send messages, 1011for components that send messages,
1011–1014configuring JavaServer Faces applica-
tions, 812–816container-managed persistence, 972–980,
1000–1002creating J2EE applications, 430deploying Web modules, 91deployment descriptors, creating,
1092–1100Edit Relationship dialog box, 976–978EJB Ref’s tab, 974–975Entity tab, 978Finder/Select Methods dialog box,
978–980General tab, 973–975, 978JAR File tab, 974JNDI names, specifying, 1013–1014JNDI Names tab, 973–974message-driven beans, 1010, 1227
J2EETutorial.book Page 1426 Thursday, June 3, 2004 10:26 AM
INDEX 1427
for message-driven beans, 1010–1011method permissions, declaring, 1143overview, 27redeploy operation, 870Relationships tab, 975–978resource adapter security, configuring,
1148–1149resource references, setting, 1012security elements, setting, 1092–1100security pane, 1093–1100security roles, 1090–1092starting, 27Sun-specific CMP Settings dialog box,
980Design Patterns, Elements of Reusable
Object-Oriented Software, 457Destination interface, 1164Destinations
See also JMSSee also point-to-point messaging systemSee also publish/subscribe messaging sys-
temdefinition, 1371JMS programming model, 1164message destination references, setting,
1012–1013message destinations, setting, 1013temporary, 1198–1199
Destinations, JMScreating, 1007, 1178introduction, 1164JMSDestination message header field,
1170looking up, 1004, 1164temporary, 1199, 1233, 1248
destroy method, 467detachNode method, 348Detail interface, 369Detail object, 368DetailEntry interface, 369Development roles, 14–16
application assemblers, 15application client developers, 15application deployers and administrators,
16
enterprise bean developers, 15J2EE product providers, 14tool providers, 14Web component developers, 15
Development team, 634–635Digest authentication, 1105, 1371Digital certificates. See also client certificates.
for Application Server, 1115, 1119–1120client certificate, creating, 1120–1121commands for, 1121importing, 428–429keytool, 1116, 1121mutual authentication, 1120–1121and mutual authentication, 1120–1121overview, 1115–1116principal name, 1089server certificate, creating, 1116–1118signing, 1118–1119
Digital signatures, 1116DII (dynamic invocation interface) clients,
329–333Directives, JSP documents, 525–527Directives, tag files
attributesattribute, 579, 580body-content, 579list of, 577–578tag attributes, declaring, 579
tag variables, declaring, 579, 586–588tags, declaring, 576uses for, 576variable, 580–581variable synchronization, 580–584
Directory operations, 21–22. See also JNDI.Directory services, 21–22Disabling scripting, 620Discovering JAX-RPC service, 1282DISTINCT keyword, 1042Distributed applications, 2–8, 1371Distributed communication, 18. See also
JMS.div
JSP operator, 494XPath operator, 253
DNS, 22
J2EETutorial.book Page 1427 Thursday, June 3, 2004 10:26 AM
1428 INDEX
DNS services and JNDI, 22. See also JNDI.doAfterBody method, 627DocType node, 208, 222DOCTYPE tag, 56Document class, 184Document events, 123–124Document locator, 136–137Document Object Model (DOM). See DOM.Document root, 86, 1372Document type definition (DTD). See DTD.Documentation, module type, 13DocumentBuilderFactory, 212, 238
configuring, 238Document-Driven Programming. See DDP.Document-driven programming (DDP),
39–40, 1370Documents, 176
See also dataSee also JSP, documentsSee also JSP pagesSee also XML documentsdefinition, 1371element, 57events, 123fragment, 222node, 222type, 279vs. data, DOM, 176
doEndTag method, 624doFilter method, 454–455, 460doGet method, 448doInitBody method, 626DOM (Document Object Model), 117, 1345.
See also JAXP; SAX.applications, extending, 218, 227attributes, creating, 236CDATA nodes, converting to Text nodes,
212choosing a model, 181–182comments, ignoring, 212constructing, 182creating
configuring the factory, 187declaring the DOM, 184
element nodes, creating, 230–231error handling, 184–185from the factory, 228–229getting a parser, 186importing classes, 183–184instantiating the factory, 185modifying code, 229–230parsing a file, 186running the program, 186skeleton program, 182–183text nodes, creating, 230–231validation errors, 187–188
definition, 1371displaying a hierarchy, 189displaying a JTree, 195displaying in a JTreeAdapterNode class, 195–200adapting TreeModel to JTree,
195–204adding import statements, 189–190attribute data, 222CDATA, 222comments, 222complex tree, 207–211compressing the tree view, 213converting DomEcho to a GUI, 189creating adapters, 195data types, 221–223display components, 192–194displaying the tree, 223document fragments, 222documents, 222element content, defining, 220–223element data, 221entity data, 222entity reference data, 222GUI framework, 190–191lexical controls, 212modifications, 228notations, 222processing instructions, 222running the application, 225–227simple tree, 205–207text data, 222
J2EETutorial.book Page 1428 Thursday, June 3, 2004 10:26 AM
INDEX 1429
TreeModel adapter, 200–204wiring the JTree to the JEditorPane,
223–224displaying in a JTree, nodes
changing, 236child access, 217DocType, 222getting content of, 235–236inserting, 237making selectable, 213–215removing, 236searching for, 234–235subnodes, concatenating, 220–223traversing, 234types, identifying, 219–220visibility, 216
documents vs. data, 176element nodes, 175entity reference nodes, expanding, 212interfaces, 111library, 106mixed-content model, 177nodes, 177
changing, 236DocType, 222getting content of, 235–236inserting, 237making selectable, 213–215removing, 236searching for, 234–235subnodes, concatenating, 220–223text, 175traversing, 234types, identifying, 219–220types of, 175, 177–181visibility, 216
normalizing, 231–233overview, 19, 110–111packages, 111reading XML data, 182–188, 258–259SAAJ and, 344, 358, 381SAAJ messages, 344, 381–385in SAAJ messages, 357, 381–385
versus SAX, 115structure, 180transforming data, 247tree structure, 175uses for, 106, 176validating
configuring the DocumentBuilder fac-tory, 238
with multiple namespaces, 239–240overview, 237schemas, associating with documents,
238–239schemas, declaring, 241–243with XML schema, 237–243
whitespace, ignoring, 212writing as an XML file, 257–264writing out a subtree, 263writing out as an XML file, 257XML standard, 1345
Dom4j, 117, 178, 1345–1346Domains, 25
Application Server default, 25asadmin start-domain --verbose
domain1, 25asadmin stop-domain domain1, 27definition, 25EJB QL queries, 1027–1030JMS (Java Message Service) API,
1159–1161messaging, 1159–1161overview, 25, 27security policy, 1392security technology, 1392start-domain command, 25–27
DomEcho, converting to a GUI, 189DOMExample.java, 381–385DOMSrcExample.java, 381–385doPost method, 448doStartTag method, 624doTag method, 599Drawing Meta Language (DrawML), 1353DrawML, 1353DrawML (Drawing Meta Language), 1353Drop-down lists, 699–700, 703–704
J2EETutorial.book Page 1429 Thursday, June 3, 2004 10:26 AM
1430 INDEX
DTD (document type definition), 35, 1346, 1348. See also XML.
ANY keyword, 55ATTLIST tag, 58attribute specification parameters, 60attribute types, 59attributes, defining, 57–60basic definitions, 52–53conditionalized DTDs, 78data elements, 57defining attributes, 57defining entities, 60defining namespaces, 72definition, 1372DOCTYPE tag, 56document elements, 57document type, specifying, 56documents vs. data, 57duplicate definitions, 55EMPTY keyword, 55entities
binary content, 63, 64–65conditional sections, 66defining, 60–63external, 62–63general, 63image files, 64–65internal, 60–61, 63MIME data types, 64–65multimedia data files, 64–65parameter, 66–68parsed, 63unparsed, 63, 64–65XML content, 63
entities, referencingbinary entities, 64–66with entity references, 66external entities, 62–63parameter entities, 66–68unparsed entities, 64–66
ENTITY tag, 60–61external subset of document, 56factoring out, 78
hyphenation hierarchies, 70IGNORE keyword, 69INCLUDE keyword, 69industry-standard, 74JSP documents, 531–532, 533–535limitations, 54–55local subset of document, 56mixed-content model, 54modularizing, 78namespaces
and attributes, 71defining, 72defining prefixes, 73–74purpose of, 71referencing, 72–73
naming conflicts, 70–71. See also namespaces.
nested elements, 54normalizing, 78NOTATION keyword, 64parameterized, parsing in SAX, 162–163parsing the parameterized, 162PCDATA (parsed character data), 54PUBLIC keyword, 62–63referencing, 56–57in SAX, 171–172SAX warnings, 163special element values, 55SYSTEM keyword, 62–63text definitions, 54warnings, 163whitespace, 52XML standard, 1346
DTDHandler API, 109, 171Duke’s Bank example. See online banking
example.Duke’s Bookstore. See bookstore example.DUPS_OK_ACKNOWLEDGE mode, 1194Durable subscriptions, 1160, 1200–1204,
1372Durable subscriptions, JMS, 1200
examples, 1202, 1222Dynamic attributes, 570–571, 588–589,
601–602
J2EETutorial.book Page 1430 Thursday, June 3, 2004 10:26 AM
INDEX 1431
Dynamic content. See also JSP; servlets.JSP documents, 527–530JSP pages, 487–489overview, 6, 18
Dynamic invocation interface. See DII.Dynamic invocation interface (DII) clients,
329–333Dynamic proxies, 326Dynamic proxy clients, 326–329
examples, 326Dynamic reloading, 93–95DynamicAttributes interface, 601
EEAI (enterprise application integration),
20–21.ear file extension, 12EAR (Enterprise Archive) files, 12–13,
1372. See also packaging.EbXML (Electronic Business XML), 12, 20,
1354. See also JAXR.definition, 1372overview, 12, 20registries, 390–391XML standard, 1354
EbXML Registry and Repository standard, 390
Echoingcomments, 164, 167–168entity references, 153–154external entity, 153–154lexical information, 168–171XML files
application skeleton, 118classes, importing, 118ContentHandler, 119–120I/O, setting up, 119output, 121–123overview, 117parser, setting up, 120–121
XML files, event handling, 123–127E-commerce, XML standard, 1353–1354
EditableValueHolder interface, 646Editors, XML, 40EIS (enterprise information systems), 1357,
1362J2EE interaction. See J2EE Connector
architecture.EIS tier, 8
overview, 2–3, 8security
component-managed sign-on, 1148container-managed sign-on, 1147overview, 1147resource adapter security, configuring,
1148–1149EJB, timer service, 892EJB (Enterprise JavaBeans). See also enter-
prise beans.container providers, 1372containers, 10, 1372. See also enterprise
beans; transactions, container-managed.
context, 1373definition, 3, 1374home objects, 1373JAR files, 13, 1373modules, 13, 1373objects, 1373overview, 17server providers, 1373servers, 1373
EJB containers, 10bean-managed persistence. See BMP.container-managed persistence, 834container-managed transactions, 1046generating primary keys, 983instance contexts, 892instantiating enterprise beans, 847, 876message-driven beans, 1214onMessage method, invoking, 1005persistence, 939persistent fields, 943relationships, 834, 939services, 829–830
J2EETutorial.book Page 1431 Thursday, June 3, 2004 10:26 AM
1432 INDEX
EJB JAR files, 845container-managed relationships, 842EJB QL, 1015, 1028portability, 845
EJB QL (Enterprise JavaBeans Query Lan-guage), 1015
abstract schema, 1016abstract schema name, 1016abstract schema type, 1016abstract schemas, 1016, 1029, 1041arithmetic functions, 1037BigDecimal data types, 1044BigInteger data types, 1044BNF (Backus-Naur Form), 1016boolean logic, 1038case sensitivity, 1027cmp_field element, 1030cmr_field element, 1030collection member declarations, 1029collections, 1029, 1037comments, 1044compared to SQL, 1015, 1019, 1028conditional expressions, 1032–1033container-managed persistence, 1044date and time values, 1044definition, 1374delimiters, 1030deployment descriptors, 835deploytool, 978, 1001domain of query, 1015, 1027–1028EJB containers, 835examples, 996, 1017, 1019–1021, 1032finder methods, 835, 956identification variables, 1017, 1027–1028inheritance, 1044input parameters, 1033multiple declarations, 1028navigation, 1016, 1019, 1029, 1032navigation operator, 1019, 1030null values, 1036, 1038operators, 1034parameters, 1018path expressions, 1016, 1030
definition, 1016
examples, 1032expression types, 1031navigation, 1032syntax, full, 1030–1032
persistent fields, 1016queries
adding, 964–966conditional expressions, 1032–1040defining, 1001defining the query domain, 1027–1030identification variables, declaring,
1027–1030return types, defining, 1040–1043sorting results, 1027–1030
range variables, 1029relationship direction, 838relationship fields, 1016restrictions, 1044scope, 1015select methods, 944string functions, 1037syntax, full
aggregate functions, 1042–1043BNF grammar, 1023–1026BNF symbols, 1023FROM clause, 1027–1030collection member expressions, 1037conditional expressions, 1033DISTINCT keyword, 1042empty collection comparison expres-
sions, 1037equality semantics, 1039–1040BETWEEN expressions, 1035IN expressions, 1035functional expressions, 1037–1038LIKE expressions, 1036literals, 1032–1033NULL comparison expressions, 1036NULL values, 1038–1039OBJECT keyword, 1042operator precedence, 1033ORDER BY clause, 1027–1030path expressions, 1030–1032SELECT clause, 1040–1043
J2EETutorial.book Page 1432 Thursday, June 3, 2004 10:26 AM
INDEX 1433
WHERE clause, 1032–1040syntax, simplified, 1016–1017syntax diagram, 1023types, 1031, 1039–1040
ejbActivate method, 847, 850EJBContext, 1050, 1057, 1068–1069ejbCreate method
bean-managed persistence, 905compared to create method, 878container-managed persistence, 945examples, 876, 905, 925, 945, 948JMS administered object lookups, 1213life cycles, 847, 850–851message-driven beans, 1007, 1215primary keys, 850, 935, 983requirements, 877session beans using JMS, 1224
ejbFindByPrimaryKey method, 909, 935EJBHome interface, 878ejbLoad, 1051ejbLoad method, 907, 928, 931, 946EJBObject interface, 879ejbPassivate method, 847, 850ejbPostCreate method, 850, 906, 945ejbRemove method
bean-managed persistence, 907, 932container-managed persistence, 946examples, 907life cycles, 848, 850–851message-driven beans, 1007, 1215
ejbStore method, 907, 946EJB-tier security
IOR security, configuring, 1143–1145method permissions, declaring, 1143overview, 1142and programmatic security, 1145users unauthenticated, 1145
ejbTimeout method, 892–893Electronic Business XML (ebXML). See
ebXML (Electronic Business XML).
Element events, 124–125Element nodes, 175
Elements, 43, 221, 230adding attributes, 43content, 220definition, 1373empty, 45, 153events, 124nested, 44nesting, 44node, 248qualifiers, 53root, 42root, defining, 42–43special values, 55vs. attributes, 75–76
Eliminating redundancies, 77email
Internet mail, 18–19JavaMail API
connecting to from enterprise beans, 1080–1083
definition, 1379overview, 18–19resource manager, 1076
mail session connections, 1080–1083notifications, 18–19. See also JavaMail.sending from enterprise beans,
1080–1083EMPTY, 55empty, JSP operator, 494Empty collection comparison expressions,
1037Empty elements, 153EMPTY keyword, 55Empty tags, 33–34, 1373Encoding, 35Encoding custom UI components, 780–782endDocument method, 119endElement method, 119Enterprise application integration (EAI),
20–21Enterprise Archive (EAR) files, 12–13,
1372. See also packaging.Enterprise bean class, coding, 855–856
J2EETutorial.book Page 1433 Thursday, June 3, 2004 10:26 AM
1434 INDEX
Enterprise bean classes files, 845–846Enterprise bean JAR files, examples, 857Enterprise beans, 6, 17, 855
See also backing beansSee also enterprise beansSee also entity beansSee also J2EE componentsSee also message-driven beansSee also session beansSee also transactionsabstract schema, 835–836accessing, 840API, 6–7application client
coding, 859compiling, 861creating, 858–863enterprise bean reference, specifying,
862–863packaging, 861–862running, 869
application exceptions, 901–902asynchronous message processing,
838–840bean-managed persistence, 834benefits of, 830boundaries, determining, 1046business methods. See business methods.business methods, invoking, 860coding
application client, 859enterprise bean class, 855–856enterprise beans, 854home interface, 855remote interface, 855Web client, 863–864
comparing, 891compiling, 856
application client, 861enterprise bean source files, 856Web client, 865
container-managed persistence, 834, 835–838. See also CMP.
container-managed relationships
bidirectional, 837–838definition, 834direction, 837–838many-to-many, 837many-to-one, 837multiplicity, 837one-to-many, 837one-to-one, 837unidirectional, 837–838
containers, 10contents, 845–846conversational state, 832ConverterClient program source code,
860–861creating, 854–858, 960and database interactions, 17databases, connecting to, 1078–1080definition, 3, 829, 1374deployment, 845deployment descriptor files, 845–846development roles, 15distribution, 843Duke’s Bank, 1309email, sending from, 1080–1083enterprise bean class, coding, 855–856enterprise bean classes files, 845–846entity beans. See entity beans.environment entries, 890establishing relationships, 966–967exception handling, 901–902exceptions, 901field mappings, 968helper classes files, 845–846home interface, coding, 855home interface, locating, 859–860home interfaces. See home interfaces.home methods, 990implementor of business logic, 6instances, creating, 860interfaces, 840, 845interfaces files, 845–846intranet security, 1143–1145IOR security, configuring, 1143–1145J2EE applications
J2EETutorial.book Page 1434 Thursday, June 3, 2004 10:26 AM
INDEX 1435
class files, modifying, 870–871creating, 854deploying, 868–869deployment settings, modifying, 872JAR, adding files to, 871modifying, 870–872WAR, adding files to, 871
JAR files, 13JavaBeans architecture, 5JavaMail, connecting to, 1080–1083and JDBC API, 21life cycle
entity beans, 848–850message-driven beans, 850–851stateful session beans, 847–848stateless session beans, 848
life cycles, 841, 847local access, 841local home interfaces. See local home
interfaces.local interfaces. See local interfaces.lookups, 859mail sessions, connecting to, 1080–1083mapping references to JNDI names, 866message-driven beans
life cycle, 850–851vs. entity beans, 838–840vs. session beans, 838–840
method permissions. See method permis-sions.
method permissions, declaring, 1143modules, 13naming conventions, 846–847overview, 6–7, 17packaging, 857–858, 881passivation, 847performance, 842–843, 845persistence, 833–834persistent fields, 835–836PointBase database, connecting to,
1078–1080primary keys, 834propagating security identity, 1149–1151protecting, 1142
provider, 1374provider/developer role, 15reference, specifying, 883, 899references, 859, 862, 866, 998–999references, setting, 968–971references, specifying, 1055–1056, 1062,
1067relationship fields, 836relationship mappings, 968relationships, 834remote access, 840remote interface, coding, 855remote interfaces. See remote interfaces.representing a single client, 831–833representing business objects, 833–838required files, 845–846session beans. See session beans.shared access, 834source files, compiling, 856state, 836state management modes, 831–832stateful session beans, 832, 847–848stateless session beans, 831–832, 848system exceptions, 901–902transactions, 1069transactions, bean-managed, 1057–1068transactions, container-managed,
1046–1057types, 7, 830–832URLs, connecting to, 1083–1086user access, controlling. See EJB-tier
security.uses for, 830Web client
coding, 863–864compiling, 865context root, specifying, 868creating, 863–868enterprise bean reference, mapping,
867enterprise bean reference, specifying,
866packaging, 865running, 869–870
J2EETutorial.book Page 1435 Thursday, June 3, 2004 10:26 AM
1436 INDEX
Enterprise beans (Continued)Web service endpoint interfaces, 844Web services, 831–832, 840, 843, 884
Enterprise Information Systems. See EIS tier.
Enterprise information systems (EIS), J2EE interaction. See J2EE Connector architecture.
Enterprise JavaBeans (EJB). See EJB.Enterprise JavaBeans Query Language (EJB
QL). See EJB QL.EnterpriseBean interface, 876Entities, 35, 222
defining, 35, 49defining in DTD, 60definition, 1374external, 78external, echoing, 153–154general, 154identifying, 109included "in line," 37list of, 49parameter, 66, 155parsed, 63, 155predefined, 49public identifiers, 109reference, 77, 179, 222reference node, 211reference nodes, expanding, 212references, 66, 153–154, 212, 1375referencing binary, 64referencing external, 62resolution, SAX, 172–173state, inserting in database, 905–906summarizing, 154–155unparsed, 63, 155useful, 61in XML documents, 50–51
Entities, in DTDsbinary content, 63, 64–65conditional sections, 66defining, 60–63external, 62–63general, 63
image files, 64–65internal, 60–61, 63MIME data types, 64–65multimedia data files, 64–65parameter, 66–68parsed, 63referencing
binary entities, 64–66with entity references, 66external entities, 62–63parameter entities, 66–68unparsed entities, 64–66
unparsed, 63, 64–65XML content, 63
Entity bean class, 941Entity bean methods, 945–946Entity beans, 7, 17, 833
See also backing beansSee also BMPSee also CMPSee also enterprise beansSee also message-driven beansSee also session beansaccess control, 844–845bean-managed persistence. See BMP.benefits of, 17cascading deletes, 991collections, 1029configuring relationships, 995–996container-managed persistence. See CMP.container-managed relationships, 842container-managed versus bean-managed,
941defining client access, 840–845definition, 1375deleting, 907description, 833–838Duke’s Bank, 1306equality, 891examples, 890–892finder methods, 841–842, 908–910,
914–916garbage collection, 850granularity of data, 844–845
J2EETutorial.book Page 1436 Thursday, June 3, 2004 10:26 AM
INDEX 1437
home interface, 841home methods, 841isolation, 844isolation levels, 1071JMS example, 1231life cycle, 848–850local clients, 841–842local interfaces, 842locating, 908–910, 912mapping to multiple tables, 989messages. See JMS.overview, 7, 17persistent state, 838primary keys. See primary keys.querying. See EJB QL.remote access vs. local, 842–843remote clients, 840–841remote interface, 841transaction types allowed, 1069transactions, 1049, 1051, 1057, 1069vs. message-driven beans, 838–840vs. session beans, 833–834Web service clients, 843–844Web service endpoint interface, 844
ENTITY tag, 60–61EntityBean interface, 904EntityContext interface, 892, 906EntityResolver, 242
API, 172EntityResolver API, 109Environment entries, 890Environment naming context, locating, 22eq, JSP operator, 494Equal sign (=), XPath operator, 253Equal signs (==), JSP operator, 494Equality semantics, 1039–1040Error handling. See also debugging; excep-
tions.DOM, 184–185DTD warnings, 163error types, 139–140fatal errors, 140IOException, 144–145JSP pages, 485–486
nonfatal errors, 145–146ParserConfigurationException, 144SAX, 139–147, 158, 161SAX (Simple API for XML), 109SAXException, 141–143SAXParseException, 140–141, 143servlets, 443–444tags, 549warnings, 146–147XML, 48, 108
Error messages, JSP, 640, 698–699Error page, creating, 1107–1108ErrorHandler API, 108Errors. See also debugging.
definition, 48, 1375fatal, 48, 140, 1375generating, 286handling, 184
in the validating parser, 161handling XML Schema errors, 158mapping to error screens, 99nonfatal, 145types, SAX, 139–140validation, 159, 187warnings, 48, 146–147, 1397
escapeXML function, 561–562Event and listener model, 645, 652-653,
652–653action events. See action events.ActionEvent class, 691–692data model events, 653Event class, 652event handlers, 634, 665, 772event listeners, 632, 634, 664, 666–668,
710handling events of custom UI compo-
nents, 788implementing event listeners, 747-750Listener class, 652, 755queueEvent method, 783value-change events. See value-change
events.ValueChangeEvent class, 722
J2EETutorial.book Page 1437 Thursday, June 3, 2004 10:26 AM
1438 INDEX
Event handlingCDATA sections, 147–149. See also lexical
events.custom UI components, 789–790document locator, 136–137DTDs, 171–172entity resolution, 172–173error handlers, 139–147, 161lexical events. See also CDATA sections.comment method, 164echoing comments, 164, 167–168echoing lexical information, 168–171identifying CDATA sections, 164LexicalHandler, 164–171
processing instructions, 137–139special characters, 147–149XML files
character events, 125–127document events, 123–124element events, 124–125
Event listeners, 591, 710–712, 747–750Events. See also lexical events.
action, 652character, 125–127content, 123data-model, 653document, 123–124element, 124–125immediate processing, 681–682lexical, 164
ExamplesSee also bookstore exampleSee also Coffee BreakSee also online banking exampleSee also SAAJ messages, tutorialSee also session beans, examplesaccess methods, 949, 976application clients, 333, 860asant, 856authentication
basic, 1126–1133client-certificate, 1133–1142form-based, 1105–1114mutual, 1133–1142
bean-managed JDBC transactions, 1059–1063
bean-managed JTA transactions, 1064–1068
bean-managed persistence, 903, 924, 932. See also BMP examples.
business methods, 910, 945classpath, 856container-managed persistence, 939, 958,
984. See also CMP examples.container-managed relationships, 940container-managed transactions,
1053–1056create method, 860, 876, 925deployment descriptors, 1131DII clients, 329Duke’s Bank. See online banking exam-
ple.Duke’s Bookstore. See bookstore exam-
ple.durable subscriptions, 1202–1204dynamic proxy clients, 326EJB QL, 996, 1017, 1019–1021, 1032ejbCreate method, 876, 905, 925, 945,
948ejbRemove method, 907enterprise bean JAR files, 857entity beans, 890–892finder methods, 909, 920, 955, 1041guessNumber, 636, 662home interfaces, 879, 914image map, 765–770iteration tags, 608–610Java Servlet technology. See bookstore
example.Java Web services. See Coffee Break
example.JavaServer Faces, JSP pages, 672–675JavaServer Faces technology. See also
bookstore example.building, 1297–1298deploying, 1297–1298JavaBeans components, 1288–1289JSP pages, 1285–1287
J2EETutorial.book Page 1438 Thursday, June 3, 2004 10:26 AM
INDEX 1439
overview, 1284–1285packaging, 1297–1298resource configuration, 1289–1290running, 1297–1298
JAXRJ2EE application, 425simple, 417
JAX-RPC serviceadvertising the service, 1259–1263building, 1292–1294deploying, 1292–1294discovering, 1282packaging, 1292–1294registry, deleting from, 1263–1265registry, publishing to, 1259–1263running, 1292–1294service implementation, 1258–1259service interface, 1257
JMSasynchronous message consumption,
1183durable subscriptions, 1202J2EE examples, 1222, 1231, 1239,
1246local transactions, 1206message acknowledgment, 1194synchronous message consumption,
1174JMS API local transactions, 1206–1211JSP (JavaServer Pages). See bookstore
example.JSP custom tags
bookstore examples, 564–568dynamic attributes, 588–589fragment attributes, 586–588simple attributes, 585–586, 586–588variables, 572–573
JSP documents, 516–521JSP expressions, 494–495JSP pages, 472–482, 494–495, 863JSP scripting elements, 618JSP simple tags, 608, 610JSP Standard Tag Library. See bookstore
example.JSP tag files, variable synchronization,
582–584JSTL (JavaServer Pages Standard Tag
Library), 538–541local interfaces, 946–947, 950location, xlmapping table relationships
child table, entity bean, 927–929child table, helper class, 923–926foreign keys, 919–922many-to-many, 930–933one-to-many, 922–930one-to-one, 919–922
message acknowledgment, 1194–1197message-driven beans. See message-
driven beans example.path expressions, 1032persistent fields, 943primary keys, 934, 982programming tag handlers, 608–616relationship fields, 943remote interfaces, 855, 879, 916required software, xlSAAJ
attachments, 385DOM, 381headers, 380request-response, 373SOAP faults, 387
scripting, 618–619security
basic authentication, 1126client-certificate authentication, 1133form-based authentication, 1105mutual authentication, 1133
servlets, 436–441session beans, 855, 873, 890simple JSP pages, 84simple servlets, 84synchronous messaging, 1174template tag library, 610–613timer service, 895transactions, 1051–1052, 1063variable synchronization, tag files,
582–584Web applications
J2EETutorial.book Page 1439 Thursday, June 3, 2004 10:26 AM
1440 INDEX
Examples (Continued)See Coffee Break exampleSee JAXR, client examplesSee JAX-RPC, exampleSee online banking example
Web clients, 863Web services, 314, 1255
ExceptionsSee also debuggingSee also error handlingSee also errorsapplication, 901–902business methods, 878create method, 879, 915ejbCreate method, 877, 906ejbFindByPrimaryKey method, 910ejbRemove method, 907enterprise beans, 901–902javax.ejb package, 902JMS, 1172–1173mapping to error screens, 99ParserConfigurationException, 144rolling back transactions, 901,
1050–1051, 1058, 1063SAXException, 141–143SAXParseException, 140–141, 143SQL, 1051system, 901–902transactions, 1048–1049
Exclamation point, equal sign (!=)JSP operator, 494XPath operator, 253
Exclamation point (!), JSP operator, 494Executing procedures remotely. See JAX-
RPC; RPCs.Expiration of JMS messages, 1198JMSExpiration message header field,
1170Explicit collaboration, 542–543Expression evaluation tags, 549Expression language, JSP pages
arithmetic operators, 494conditional operators, 494deactivation, 490, 511–512
examples, 494–495functions, 496–497implicit objects, 492–493literals, 493logical operators, 494null values, determining, 494operators, 493–494overview, 489–490relational operators, 494reserved words, 494using expressions, 490–491variables, 491–492
ExpressionsJSP documents, 530scripting, 622–623XPath, 247–248, 250–251
Extended document XML standards, 1353Extensible Markup Language (XML). See
XML.Extensible Stylesheet Language (XSL),
1347, 1400Extensible Stylesheet Language Transfor-
mations (XSLT). See XSLT.External data sources, binding to component
values, 683, 714–718External entities, 62–63, 153–154, 1375External subsets, 1375
FFaces request, 663–664Faces response, 663–664FacesMessage, 743–744FacesServlet, 813–814false function, 256Fatal errors, 48, 140, 1375Faults, SOAP. See SOAP faults.File extensions. See specific extensions.file realm, 1088–1089Filter chains, 303–310, 455, 460, 1375
as concatenated transformations, 303in XSLT, operation of, 307
Filter interface, 454–456Filter mappings, 458–460
J2EETutorial.book Page 1440 Thursday, June 3, 2004 10:26 AM
INDEX 1441
FilterChain interface, 454–456FilterConfig interface, 454–456Filtering requests and responses, 454Filters, 454–456, 1375
defining, 454mapping to Web components, 458mapping to Web resources, 458–460overriding request methods, 457overriding response methods, 457response wrappers, 456
findAncestorWithClass method, 606findByPrimaryKey method, 929, 949, 952findClassificationSchemeByName
method, 406, 413findConcepts method, 402Finder methods, 990
bean-managed persistence, 908compared to select methods, 944container-managed persistence, 941, 990creating, 914–916defining, 946–947definition, 1376deploytool, 978description, 908–910, 944EJB QL, 1017entity and session beans, 841examples, 909, 920, 955, 1041home interfaces, 915local home interfaces, 946returning collections, 926transactions, 1049
findOrganization method, 400floor function, 256Flow control tags, 545–547, 552–553For-each loops, 301forEach tag
core library, 544, 547XML library, 550, 552–553
Foreign keys, 919–922, 987Foreign language support. See international-
ization; localization.form tag, 639formatDate tag, 554, 556formatNumber tag, 554, 556
Formatting Objects standard, 246Formatting tags, 556FormatValidatorTag class, 754Form-based authentication
configuring, 1097–1098definition, 1376example, 1105–1114overview, 1101–1102protecting passwords, 1113–1114and SSL support, 1113–1114
Forms, user input, 683–684forTokens tag, 544, 547forward method, 462Fragment attributes, 569–570, 584–588Fragments, JSP, 569–570Framework roles, 634–635Fraudulent transmission of information, 20.
See also JAX-RPC.FROM clause, 1027–1030Fully qualified names, 349Functional expressions, 1037–1038Functions. See also specific functions.
arithmetic (numeric), 256Boolean, 256boolean, 256ceiling, 256concat, 255contains, 255conversion, 256count, 254false, 256floor, 256JSP pages, 496–497lang, 256last, 254local-name, 257name, 257namespace, 257namespace-uri, 257node-set, 254normalize-space, 255not, 256number, 256numeric, 256
J2EETutorial.book Page 1441 Thursday, June 3, 2004 10:26 AM
1442 INDEX
Functions (Continued)position, 254positional, 254round, 256starts-with, 255string, 255string, 256string-length, 255substring, 255substring-after, 255substring-before, 255sum, 256translate, 255true, 256XPath, 253–257
Functions library, 541–542, 561–562
GGamma, Erich, 457Garbage collection, 850–851ge, JSP operator, 494General entities, 63, 154, 1376Generate-wsdl task, 317–318GenericServlet interface, 436getAttachments method, 360getBody method, 348getCallerPrincipal method, 1145getConnection method, 101, 1077getEJBObject method, 906getEnvelope method, 348getHeader method, 348getInfo method, 894getJspBody method, 602getJspContext method, 604getNextTimeout method, 894getObject method, 892getParameter method, 449getParent method, 606getParser method, 121getPrimaryKey method, 906, 936getRemoteUser method, 1098getRequestDispatcher method, 461getRollbackOnly method, 1218
getServletContext method, 463getSession method, 464getSOAPBody method, 348getSOAPHeader method, 348getSOAPPart method, 348Getters. See access methods.getTimeRemaining method, 894Getting, 81getUserPrincipal method, 1098getValue method, 354getVariableInfo method, 605GIF files, 13Granularity of data, 844–845Graph (tree) of beans, 799–801Greater than, equal (>=)
JSP operator, 494XPath operator, 253
Greater than (>)entity for, 49JSP operator, 494XPath operator, 253
Greater than entity, >, 49Groups, 1088
definition, 1088–1089, 1376overview, 1088–1089roles, mapping, 1090–1092
>, greater than entity, 49gt, JSP operator, 494GUI tools, list of, 26
HHandles, 1376Handling events. See event and listener
model.Hash mark (#), in character references, 50header object, 492HeaderExample.java, 380–381Headers, SAAJ messages, 355–356,
380–381headerValues object, 493Headings, XML to HTML, 285Helper classes, 845, 880, 923
Duke’s Bank, 1307
J2EETutorial.book Page 1442 Thursday, June 3, 2004 10:26 AM
INDEX 1443
Helper classes files, 845–846Hexadecimal to decimal conversion, 50Hiding user input, 694Hierarchical nature of XML, 38Hierarchy, collapsed, 225Home handles, 1376Home interfaces, 878, 914
coding, 855defined, 841definition, 1376description, 878–879entity and session beans, 841examples, 855, 879, 914home methods, 913locating, 859–860, 863
Home methods, 912, 915container-managed persistence, 990creating, 914–916defining, 946–947description, 912–913entity and session beans, 841
HTML (Hypertext Markup Language), 31component tags, 680–681definition, 1376files, module type, 13pages. See also JSP pages; Web compo-
nents.overview, 6
transforming XML to. See XPath; XSLT.HTMLReaderBean example, 1085–1086HTML-style tags, 44–45HTTP (Hypertext Transfer Protocol),
313–314, 1133basic authentication. See basic authentica-
tion.definition, 1376digest authentication. See digest authenti-
cation.over SSL, 1102, 1133. See also client-cer-
tificate authentication.request-and-response model, 11. See also
SOAP.requests, 1356responses, 1356setting proxies, 398
HTTP protocol, 1355HTTP request URLs, 449
query strings, 450request paths, 449
HTTP requests, 449, 1356. See also requests.
methods, 1356HTTP responses, 451, 1356. See also
responses.status codes, 99, 1356
mapping to error screens, 99HTTPS, 1116, 1122, 1377HttpServlet interface, 436HttpServletRequest, 1098HttpServletRequest interface, 449, 1098HttpServletResponse interface, 451HttpSession interface, 464Hyperlinks, 686Hypertext Markup Language (HTML). See
HTML.Hypertext Transfer Protocol (HTTP). See
HTTP.Hyphen (-), in XML markup, 43Hyphenation hierarchies, DTDs, 70
I<I> (italics) tag, 280I18n. See internationalization.ICE (Information and Content Exchange),
1354id attribute, 681Identification, 1088Identity transform, 260IDL (Interface Definition Language), 1377if tag, 544, 545, 550ignorableWhitespace method, 151–152IGNORE keyword, 69Ignored, 145IIOP (Internet Inter-ORB Protocol), 1377Image file entities, 64–65Image map example
application classes, summary, 770configuring model data, 769–770JavaServer Faces technology for, 765–766
J2EETutorial.book Page 1443 Thursday, June 3, 2004 10:26 AM
1444 INDEX
Image map example (Continued)JSP page, 767–768rendered HTML, 766–767
Images, displaying, 690immediate attribute, 681–682Impersonation, 1377Implementation-specific parameters, 12–14Implicit collaboration, 542–543Implicit includes, 512–513Implicit objects, 717
binding to component values, 717–718JSP pages, 488, 492–493referencing, 796–797
import tag, 544, 548IN expressions, 1035Inbound contracts, 1361–1362include directive, 506INCLUDE keyword, 69include method, 461Indent options, XML to HTML, 290–291Independent software vendor (ISV), 1377indexOf function, 561–562Information and Content Exchange (ICE),
1354Information model, JAXR, 390, 392Inheritance, EJB QL, 1044init method, 447InitialContext interface, 22Initialization parameters
definition, 1377referencing, 796–797setting, 98–99
Initializingarray properties, 799instance variables, 905–906JSP pages, 620–621list properties, 799lists, 801–802managed bean properties, 799–801map properties, 797–798maps, 801–802properties, 795–796servlets, 447–453
Initializing properties with the managed-property element
initializing Array and List properties, 799
initializing managed-bean properties, 799initializing Map properties, 797initializing maps and lists, 801referencing an initialization parameter,
796initParam object, 493Inline (content) elements, 296–302Inline reusability, XML, 37Inline tags, 280, 296Input forms, user interface, 639inputSecret tag, 694inputText tag, 639, 691–692Installing applications, 16Instance variables
initializing, 905–906refreshing, 907–908storing, 907–908synchronizing, 1052–1053
Instructions, processing, 35, 46, 137Integrity, 1114Interface Definition Language (IDL), 1377Interface files, 845–846Internal entities, 60–61, 63Internationalization, 819. See also localiza-
tion.application clients, Duke’s Bank, 1327JavaServer Faces applicationsbasename, 704FacesContext.getLocale method,
708FacesMessage class, 742getMessage(FacesContext,
String, Object) method, 743, 753
loadBundle tag, 680, 704–705locale attribute, 677localizing messages, 742-744message factory pattern, 742MessageFactory class, 743, 752performing localization, 741-744queuing messages, 758using localized static data and mes-
sages, 703
J2EETutorial.book Page 1444 Thursday, June 3, 2004 10:26 AM
INDEX 1445
using the FacesMessage class to create a message, 743
JSTL tag library, 554–556locale, establishing, 821localization context, 554online banking example, 1327–1328Web clients, Duke’s Bank, 1327
Internationalization library, 541–542, 554–556
Internet Inter-ORB Protocol (IIOP), 1377Internet mail, 18–19. See also JavaMail.Internet RPCs, 19. See also JAX-RPC.Interoperability, 11, 19. See also J2EE Con-
nector architecture.Intranet security, 1143–1145invalidate method, 466Inventory and ordering example. See CMP
examples, inventory and ordering.Invoke application phase, 668invoke method, 602IOException, 144–145IOR security, configuring, 1143–1145isCallerInRole method, 1145isIdentical method, 891ISO 3166, 1377ISO 3166 country codes, 400ISO-8859-1 encoding, 1341Isolation, entity and session beans, 844Isolation levels, 1070Isolation levels, transactions, 1070–1071isThreadSafe, 488isUserInRole method, 1098ISV (independent software vendor), 1377<ITEM> element, 281, 293Iterating over objects in the data source,
686–689Iteration tags, 547, 608–610IterationTag interface, 623
JJ2EE (Java 2 Platform, Enterprise Edition)
1.4 APIs, 16–17. See also APIs.1.4 platform implementation, 23–29. See
also Application Server.
applications. See also applications.class files, modifying, 870–871creating, 854definition, 1377deploying, 868–869deployment settings, modifying, 872JAR, adding files to, 871modifying, 870–872security roles, 1090–1092. See also
roles; security.WAR, adding files to, 871
clients, 4–5components
definition, 1377overview, 3–8versus standard Java classes, 3–4
definition, 1378EIS interaction. See J2EE Connector
architecture.groups, 1089modules, 1378Platform APIs. See APIs.product, 1378product provider, 1378product provider role, 14security model, 8. See also containers;
security.server
components that run on, 2as a container, 10definition, 1378
server communications, 5–6users, 1088
J2EE 1.4 platform, APIs, 16J2EE applications, 2. See also online bank-
ing example.debugging, 28–29deploying, 868, 883, 888, 899iterative development, 870JAXR example, 425JMS examples, 1222, 1231, 1239, 1246running on more than one system, 1239,
1246tiers, 2
J2EETutorial.book Page 1445 Thursday, June 3, 2004 10:26 AM
1446 INDEX
J2EE clients, 4application clients, 5. See also application
clients.Web clients, 4, 81. See also Web clients.Web clients versus application clients, 5
J2EE components, 3connecting to databases, 1078connecting to mail sessions, 1081connecting to URLs, 1083mapping resource references to data
sources, 1079mapping resource references to mail ses-
sions, 1082mapping resource references to URL con-
nections, 1085sending email, 1080specifying resource references, 1079,
1082, 1085types, 3
J2EE Connector architecture, 1357CCI, 1362CCI (Common Client Interface),
1362–1363connection management contract, 1361inbound contracts, 1361–1362life-cycle management contract,
1359–1360management contracts, 1359–1360messaging contract, 1361messaging contracts, 1361outbound contracts, 1360–1361purpose of, 1357RAR (Resource Adapter Archive) files,
1357resource adapter contracts, 1359–1362resource adapters. See resource adapters.security management contract, 1361thread management, 1360transaction inflow, 1362transaction management contract, 1361work management contract, 1359–1360
J2EE groups, 1089–1090J2EE modules, 12–13
application client modules, 13EJB modules, 13, 845
resource adapter modules, 13, 1357Web modules. See Web modules.
J2EE platform, 1–2JMS and, 1156
J2EE security model, 8J2EE servers, 10J2EE transaction model, 8J2ME (Java 2 Platform, Micro Edition),
1378J2SE (Java 2 Platform, Standard Edition),
324, 1378J2SE SDK, 324JAAS (Java Authentication and Authoriza-
tion Service), 22JACC (Java Authorization Contract for Con-
tainers), 1151JAF (JavaBeans Activation Framework), 19.jar file extension, 13JAR (Java archive) files. See also EJB JAR
files.adding files to, 871definition, 1378including, 816–817j2ee.jar, 856overview, 12–14viewing settings, 974–980
Javaencoding schemes, 1341–1342IDL, 1379interfaces, 13pluggability layer, 105processing XML data. See JAXP.
Java 2 Platform, Enterprise Edition (J2EE). See J2EE.
Java 2 Platform, Micro Edition (J2ME), 1378
Java 2 Platform, Standard Edition (J2SE), 324, 1378
Java API for XML Processing (JAXP). See JAXP.
Java API for XML Registries (JAXR). See JAXR.
Java API for XML-based RPC (JAX-RPC). See JAX-RPC.
Java archive (JAR) files. See JAR files.
J2EETutorial.book Page 1446 Thursday, June 3, 2004 10:26 AM
INDEX 1447
Java Authentication and Authorization Ser-vice (JAAS), 22
Java Authorization Contract for Containers (JACC), 1151
Java beansSee backing beansSee enterprise beansSee entity beansSee message-driven beansSee session beans
Java classeslogging messages, 28Server Log, overview, 28System.out.println method, 28
Java Message Service (JMS). See JMS.Java Message Service (JMS) API. See mes-
sage-driven beans.Java Naming and Directory Interface
(JNDI). See JNDI.Java Platform Debugger Architecture
(JPDA), 29. See also debugging.Java Plugins. See applet containers; applets.Java Secure Socket Extension (JSSE), 1379Java servlet technology, 18. See also serv-
lets.Java servlets. See servlets.Java System Application Server. See Appli-
cation Server.Java Transaction API (JTA). See JTA.Java Transaction Service (JTS), 1379Java WSDP Registry Server, 390–391JavaBeans Activation Framework (JAF), 19JavaBeans components, 5, 326, 497
creating in JSP pages, 499definition, 1379design conventions, 497Duke’s Bank, 1319JAX-RPC, 325JSP pages
creating, 499custom tags, 502–506design conventions, 497–498properties, getting, 502properties, setting, 500–502
tag libraries, declaring, 503–505tag libraries, definition, 502–503tag libraries, including, 505–506using, 499
methods, 497overview, 5properties, 497–498
retrieving in JSP pages, 502setting in JSP pages, 500
using in JSP pages, 499in WAR files, 86
java:comp/env context, 22JavaMail, 18
connecting to from enterprise beans, 1080–1083
definition, 1379overview, 18–19resource manager, 1076
JavaMail resources. See mail sessions.JavaServer Faces, 24
application architects, 635application developers, 634–635backing beans
binding component values and instances, 657–659
configuring, 643–644creating, 659definition, 634developing, 642–643managing, 656–659method-binding, 657storing, 659value-binding, 657
benefits of, 633component relationships, 659–662component writers, 635data validation, 640, 654definition, 1380development team, 634–635example
building, 1297–1298deploying, 1297–1298JavaBeans components, 1288–1289JSP pages, 1285–1287
J2EETutorial.book Page 1447 Thursday, June 3, 2004 10:26 AM
1448 INDEX
JavaServer Faces (Continued)overview, 1284–1285packaging, 1297–1298resource configuration, 1289–1290running, 1297–1298
expression language, 1380framework roles, 634–635navigation model, 654–656, 1380overview, 24–25, 631–632page authors, 634–635page life cycle
faces request, 663–664faces response, 663–664invoke application phase, 668non-faces request, 663–664non-faces response, 663–664overview, 662process validations phase, 666–667render response phase, 668–669request processing, 663–665request values phase, 666update model values phase, 667–668view phase, 665–666views, 662
standard HTML render kit library, 648, 676, 808
html_basic TLD, 676UI component tags. See UI component
tags.standard HTML RenderKit library,
html_basic TLD, 777tools vendors, 635UI component class, 1380UI components, 1380user interface component model
action events, 652behavioral interfaces, 646–647classes, 645–646component rendering model, 647–651conversion model, definition, 1380conversion model, description,
651–652data validation, 654data-model events, 653
event and listener model, definition, 1380
event and listener model, description, 652–653
mapping classes to tags, 647–651overview, 644–645render kit, 647tags, list of, 648–651UICommand class, definition, 645UICommand class, tags, 648validation model, 654value-change events, 653
validation model, 1380JavaServer Faces, application configuration
application configuration resource filesdescription, 792making available, 792–793specifying path to, 814–815
backing beans, configuringarray properties, initializing, 799custom converters, registering,
804–805custom validators, registering, 803–804graph (tree) of beans, 799–801implicit objects, referencing, 796–797initialization parameters, referencing,
796–797initializing properties, 795–796instances of List, 795instances of Map, 795list properties, initializing, 799list-entries element, 795lists, initializing, 801–802managed bean properties, initializing,
799–801managed-bean element, 793–795managed-bean-class element, 794managed-bean-scope element, 794managed-property element, 795–796map properties, initializing, 797–798map-entries element, 795, 797–798maps, initializing, 801–802messages, registering, 802–803overview, 793
J2EETutorial.book Page 1448 Thursday, June 3, 2004 10:26 AM
INDEX 1449
backing beans, creating, 793–802basic requirements, 811–817classes, including, 817component access, restricting, 815–816custom components, registering, 810–811custom objects, verifying, 816custom renderer, registering, 808–810deploytool utility, 812–816FacesServlet, 813–814JAR files, including, 816–817life cycle processing, 813–814managed bean creation facility, 793–802navigation rules, configuring, 805–808pages, including, 817state, specifying save location, 815WAR files, 811–812XML file validation, enabling, 816
JavaServer Faces, application developmentActionListener class, 749–750backing bean methodsActionEvent, 749, 757navigation, 755–757overview, 755validation, 757–758ValueChangeEvent, 748, 758–759
component propertiesbound to component instances,
739–740bound to component values, 730–739FacesMessage, 743–744localization, 741–744message factory, 743overview, 730resource bundles, 741, 743–744UIData, 732–733UIInput, 731–732UIOutput, 731–732UISelectBoolean, 734UISelectItem, 736UISelectItems, 737–739UISelectMany, 734–735UISelectOne, 735–736user input, selecting from a list,
734–739
converters, custom, 744–747createValidator method, 754event listeners, 747–750FormatValidatorTag class, 754overview, 729tag handlers, 753–754tags, custom, 753–755TLD (tag library descriptor), 754–755Validator interface, 750–753validators, custom, 750–753ValueChangeListener class, 748–749
JavaServer Faces, applicationsbacking beans, 642–644buttons, 639commandButton tag, 639creating pages, 638–640data validation, 640definition, 633–634development process, 635–637displaying error messages, 640form tag, 639input forms, 639inputText tag, 639managed bean declarations, 643–644message tag, 640page navigation, 640–641text fields, 639validateLongRange tag, 640
JavaServer Faces, custom UI componentsclasses, creating, 778–786component, renderer, tag combinations,
764–765component properties, value binding,
783–784components, creating, 771–772components, determining need for,
762–765custom component tag, defining, 777decoding, 783encoding, 780–782event handling, 789–790image map example
application classes, summary, 770configuring model data, 769–770
J2EETutorial.book Page 1449 Thursday, June 3, 2004 10:26 AM
1450 INDEX
JavaServer Faces, custom UI components (Continued)
JavaServer Faces technology for, 765–766
JSP page, 767–768rendered HTML, 766–767
overview, 761–762renderer class, 786–788renderer type, identifying, 788renderers, determining need for, 763–764rendering, delegating, 786–788state, saving and restoring, 785–786tag handlers, creating, 772–776TLD (tag library descriptor), 777
JavaServer Faces, expression language, 657method-binding expressions. See method
binding; method-binding expres-sions.
value-binding expressions. See value binding; value-binding expres-sions.
JavaServer Faces, JSP pagesaction processing, 684–686backing bean methods, referencing
navigation methods, 720–721overview, 719–720validation methods, 722
binding component instances tobean properties, 718–719bean values, 683
binding component values toexternal data sources, 683, 714–718implicit objects, 717–718properties, 715–716
binding data to objects, 686–689component identification, 681conversions, immediate processing,
681–682converters, 705–710core tags, 678–680CSS styles, specifying, 683custom objects
components, 726–727converters, 724
overview, 723–724validators, 725–726
data columns, 684data tables, 694–696data validation, 714date conversion, 707–709error messages, 698–699event listeners, 710–712events, immediate processing, 681–682example, 672–675HTML component tags, 680–681hyperlinks, 686images, displaying, 690iterating over objects in the data source,
686–689localized messages, 703–705number conversions, 709–710registering listeners on components,
710–712rendering components, 682requiring values, 712–714setting up, 676–678tables, data, 694–696text labels, 690–694time conversion, 707–709UI component tag attributes, 681–683user input
buttons, 685checkboxes, 697–698, 703–704combo boxes, 699–700, 703–704drop-down lists, 699–700, 703–704forms, 683–684hiding, 694list boxes, 697–698, 703–704menus, 697–698, 699–700, 703–704requiring values, 712–714text fields, 690–694validation, 714
user output, 690–694validations, immediate processing,
681–682validators, 712–714
JavaServer Faces, standard UI components, 761
J2EETutorial.book Page 1450 Thursday, June 3, 2004 10:26 AM
INDEX 1451
UIColumn component, 684, 686UICommand component, 684–685, 711UIComponent component, 746UIData component, 684, 686, 688–689,
733UIData components, 732UIForm component, 683UIGraphic component, 690UIInput component, 690–691, 711, 713,
719, 723, 731, 733, 747, 751UIMessage component, 698UIMessages component, 698UIOutput component, 679, 683, 690–691UIPanel component, 694UISelectBoolean component, 734UISelectItem component, 735–736UISelectItems component, 700, 735,
737UISelectMany component, 679, 700,
734, 736–737UISelectOne component, 679, 700,
736–737UISelectOne properties, 735UIViewRoot component, 765
JavaServer Faces application development roles
application architects, 635, 721, 744, 750, 772, 791
application developers, 634, 647, 729, 732component writers, 635page authors, 634, 647, 671, 710–711,
723–724, 729, 744, 750tools vendors, 635
JavaServer Faces core tag library, 654, 676action attribute, 685actionListener tag, 678, 710–712, 763attribute tag, 678convertDateTime tag, 678, 707convertDateTime tag attributes, 708converter tag, 678, 706–707, 723–724converterId attribute, 706–707, 724convertNumber tag, 678, 707, 709convertNumber tag attributes, 709facet, 688
facet tag, 678, 680, 688, 696id attribute, 725jsf_core TLD, 676, 680loadBundle tag, 679–680, 704maximum attribute, 714minimum attribute, 714param tag, 679–680, 693, 717parseLocale attribute, 708selectItem tag, 650, 680, 698, 700-703selectitem tag, 679, 700selectItems tag, 650, 680, 698, 700-703selectitems tag, 679, 700subview tag, 677, 679–680type attribute, 711–712validateDoubleRange tag, 679, 712validateLength tag, 679, 712validateLongRange tag, 640, 679, 712,
714validator tag, 654, 679, 723, 725, 750,
753validator tags. See validator tags.valueChangeListener tag, 678,
710–711verbatim tag, 679–680, 693view tag, 676–677, 679–680
JavaServer Faces tag libraries, 634JavaServer Faces core tag library, 678-680JavaServer Faces standard HTML render
kit tag library. See JavaServer Faces, standard HTML render kit library.
taglib directives, 676, 724JavaServer Faces technology, 631
advantages of, 633backing beans. See backing beans.component rendering model. See compo-
nent rendering model.configuring applications. See configuring
JavaServer Faces applications.conversion model. See conversion model.event and listener model. See event and
listener model.FacesContext class, 663, 665–667, 669,
727, 743, 745–746, 751, 753, 758, 765, 767, 781
J2EETutorial.book Page 1451 Thursday, June 3, 2004 10:26 AM
1452 INDEX
JavaServer Faces technology (Continued)FacesServlet class, 637, 663–664,
812–814jsf-api.jar file, 816jsf-impl.jar file, 816life cycle. See life cycle, JavaServer Faces
pages.navigation model. See navigation model.roles. See JavaServer Faces application
development roles.tag libraries. See JavaServer Faces tag
libraries.UI component behavioral interfaces. See
UI component behavioral inter-faces.
UI component classes. See UI component classes.
UI component tags. See UI component tags.
UI components. See JavaServer Faces, standard UI components.
validation model. See validation model.JavaServer Pages (JSP). See JSP.JavaServer Pages Standard Tag Library. See
JSTL.JavaServer Pages Standard Tag Library
(JSTL). See JSTL.JavaServer Pages technology, 471. See also
JSP pages.JavaServer Pages (JSP) technology, 18. See
also JSP pages.javax.activation.DataHandler class,
359–360javax.naming.InitialContext objects,
22javax.servlet package, 435javax.servlet.http package, 435javax.servlet.jsp.tagext, 598javax.servlet.jsp.tagext package,
623–624javax.xml.registry package, 392javax.xml.registry.infomodel
package, 392javax.xml.registry.lifeCycleMan-
agerURL connection property, 397
javax.xml.registry.postalAddressS-cheme connection property, 397, 415
javax.xml.registry.queryManagerURL connection property, 397
javax.xml.registry.secu-rity.authenticationMethod connection property, 397
javax.xml.registry.semanticEquiva-lences connection property, 397, 415
javax.xml.registry.uddi.maxRows connection property, 397
javax.xml.soap package, 339javax.xml.transform.Source interface,
356JAXM specification, 340JAXP (Java API for XML Processing), 19
definition, 1379libraries, 106, 113overview, 19transformation packages, 246–247
JAXP 1.2, 176JAXR (Java API for XML Registries), 20,
389adding
classifications, 406service bindings, 407services, 407
architecture, 391–393capability levels, 390client examples
classification schemes, 421–423compiling, 420deleting concepts, 424–425overview, 417–418postal addresses, 422–423pre-compile requirements, 418–420publishing, 421–424registry objects, listing, 424–425running, 420–425
clients, 391, 393clients, definition, 391, 1381
J2EETutorial.book Page 1452 Thursday, June 3, 2004 10:26 AM
INDEX 1453
clients, implementingclassifications (taxonomies), 401–403,
406, 412–416connections, 393–403organizations, 400–408registries, 394–395, 399–400, 404–411service bindings, 403, 407–410
clients, in J2EE applicationsapplication client, 426–427, 430,
432–433application server, starting, 429certificates, importing, 428–429JAXR resources, creating, 429–430JNDI names, checking, 432–433MyAppClient.java class, 426–427overview, 425–426packaging the session bean, 431PubQuery session bean, coding, 427source files, compiling, 427–428
creating connections, 395defining taxonomies, 412definition, 390, 1379establishing security credentials, 404finding classification schemes, 406information model, 390interfaces, 392J2EE application example, 425organizations
creating, 404publishing, 408removing, 411
overview, 20, 389–393packages, 392provider, 391, 1381provider, definition, 391publishing
specification concepts, 408WSDL documents, 408
querying a registry, 399resource adapter, JNDI subcontexts for,
1076resources, creating, 429–430specification, 390specifying postal addresses, 414submitting data to a registry, 404
JAX-RPC (Java API for XML-based RPC), 19. See also examples, authentica-tion.
arrays, 325clients, 326
application, 333–336creating, 314–324DII (dynamic invocation interface),
329–333dynamic proxy, 326–329generating stubs, 323unknown until runtime, 329–333WSDL configuration files, 323
clients, invoking stubs, 321compile-service task, 317creating the WSDL, 317–318defined, 313definition, 1379deploying, 320–321example
advertising the service, 1259–1263building, 1292–1294deploying, 1292–1294discovering, 1282packaging, 1292–1294registry, deleting from, 1263–1265registry, publishing to, 1259–1263running, 1292–1294service implementation, 1258–1259service interface, 1257
generate-wsdl task, 317–318J2SE SDK classes, 324Java types supported, 324–326JavaBeans components, 325–326mapping files, 317overview, 19–20packaging, 318–320primitives, 325SEI (service element endpoint), 315,
316–318service endpoint interface, interface con-
figuration files, 318service endpoint interfaces, 315
conformance rules, 316setting the port, 314
J2EETutorial.book Page 1453 Thursday, June 3, 2004 10:26 AM
1454 INDEX
JAX-RPC (Continued)SOAP interoperability, 337specification, 337specifying the endpoint address, 320static stub client, 321–324supported types, 324value types, 325Web services, 314–324, 337WSDL files, 317, 323WS-I (Web services interoperability), 337
JDBC, 21, 100, 1077accessing databases from Web applica-
tions, 100–101data sources, 1329definition, 1381overview, 21resource connections, 1077resource manager, 1076resources, 1077. See data sources.transactions, 1058–1061, 1069. See trans-
actions,JDBC.JDOM, 117, 178, 1345–1346JEditorPane class, 190JEditPane class, 193JMS (Java Message Service) API, 18
achieving reliability and performance, 1191
administered objectscreating, 1007–1008, 1178–1180in J2EE applications, 1213for multiple systems, 1188–1189programming model, 1158, 1163removing, 1009synchronous message receives,
1178–1180applications, 1381architecture, 1158–1161asynchronous message consumption
compiling, 1185JMS provider, starting, 1185message listener, 1184–1185overview, 1183packaging, 1185–1186receiving program, 1184
running, 1186–1187sending program, 1183–1184writing the programs, 1183–1185
asynchronous messages, 1155, 1161basic concepts, 1157client applications, 1173
asynchronous message consumption, 1183–1187
connection factory, deleting, 1191JMS administered objects, for multiple
systems, 1188–1189overview, 1173running, 1187–1191server, stopping, 1191synchronous message receives,
1174–1183client applications, robustness
durable subscriptions, 1200–1204local transactions, 1204–1211message acknowledgment, 1193–1197message expiration, 1198–1199message persistence, 1197message priority levels, 1198overview, 1191–1192reliability mechanisms, advanced,
1200–1211reliability mechanisms, basic,
1193–1199clients, definition, 1158, 1381common programming interfaces,
1160–1161definition, 1154–1155, 1379durable subscriptions, 1160introduction, 1154in J2EE applications
application clients, 1219JMS administered objects, 1213message-driven beans, 1214–1216messages, 1212–1213resource management, 1213transactions, 1213, 1216–1219Web components, 1219
in J2EE applications, examplesconsuming messages, 1239–1245
J2EETutorial.book Page 1454 Thursday, June 3, 2004 10:26 AM
INDEX 1455
deploying a message-driven bean, 1245–1254
messages from entity beans, 1231–1239
messages from session beans, 1222–1230
J2EE examples, 1003, 1221–1222, 1231, 1239, 1246
J2EE platform, 1156, 1212and the J2EE platform, 1156–1157message consumption, 1161message listener, 7. See also message-
driven beans.messages, definition, 1158messaging, definition, 1154messaging domains, 1159–1161overview, 18, 1154–1157point-to-point messaging domain,
1159–1160programming model, 1162
administered objects, 1158, 1163, 1381connection factories, 1163–1164connections, 1165exception handling, 1172–1173message bodies, 1171–1172message consumers, 1167–1168message headers, 1170message listeners, 1168–1169message producers, 1166–1167message properties, 1171message selectors, 1168–1169messages, 1169–1170overview, 1162sessions, 1165–1166
providersasynchronous message consumption,
1185connections, 1165definition, 1158, 1381starting, 1177synchronous message receives, 1177
publishing/subscribe messaging domain, 1160
reliability, 1155
resource manager, 1076sessions, 1381synchronous message receives
compiling, 1177in J2EE applications, 1212–1213JMS administered objects, creating,
1178–1180JMS providers, starting, 1177overview, 1174packaging, 1181receiving program, 1176–1177running, 1182–1183sending program, 1174–1176synchronous messaging, 1174writing the programs, 1174–1177
synchronous messages, 1161uses for, 1155–1156
JMSCorrelationID message header field, 1170
JMSDeliveryMode message header field, 1170
JMSDestination message header field, 1170
JMSException class, 1172JMSExpiration message header field, 1170JMSMessageID message header field, 1170JMSPriority message header field, 1170JMSRedelivered message header field,
1170JMSReplyTo message header field, 1170,
1250JMSTimestamp message header field, 1170JMSType message header field, 1170JNDI (Java Naming and Directory Inter-
face), 21, 859, 1075–1076connection factory subcontexts, 1076data source naming subcontexts, 22definition, 1379deploytool, 867, 973enterprise bean naming subcontexts, 22environment naming contexts, 22looking up JMS administered objects,
1163lookup method, 859, 1075–1076
J2EETutorial.book Page 1455 Thursday, June 3, 2004 10:26 AM
1456 INDEX
JNDI (Continued)lookup services, 8names
checking, 432–433reviewing, 973–974, 1335–1338specifying, 1013–1014
names, Duke’s Bank, 1335, 1338namespace collisions, avoiding, 1076naming and directory services, 22naming context, 859, 1076naming contexts, 21naming conventions, 1076naming environments, 21naming subcontexts, 22, 1164, 1213overview, 8, 21–22, 1075–1076subcontexts, 1076tutorial, 22
JNDI Tutorial, 22join function, 561–562JPanel class, 190JPDA (Java Platform Debugger Architec-
ture), 29. See also debugging.JScrollPane class, 192jsf_core tags, 678–680JSP (JavaServer Pages). See also servlets.
actions, definition, 1381containers, 10, 1382custom actions, definition, 1382custom tags. See also JSP, tag handlers.
bodies, 572communication between, 573defining variables, 572–573definition, 564, 1382encapsulating reusable content. See
JSP, tag files.examples, 564–568jsp:body element, 572simple tags, 568tags with no body, 569TLD (tag library descriptor), 589–598
custom tags, attributesdefining in XML element body,
571–572dynamic, 570–571, 588–589
fragment, 569–570, 584–588jsp:attribute element, 571–572simple, 569, 585–586, 586–588
database access, 21declarations, definition, 1382definition, 1380developer roles, 15directives, definition, 1382documents. See also JSP pages; XML
documents.definition, 1382example, 516–521identifying to the container, 535overview, 515–516
documents, in XML syntaxCDATA sections, 528declarations, 530declaring tag libraries, 523–525DTD (document type definition),
531–532, 533–535dynamic content, 527–530expressions, 530including directives, 525–527root element, 530–531scripting elements, 520–530scriptlets, 530standard syntax vs. XML, 521–523static content, 527–530well formedness, 521, 528XML declaration, 531–533
elements, 1382expression language, definition, 1382expressions, definition, 1382fragments, 569–570JDBC, 21JSTL, 24modules, 13overview, 3, 6, 18packaging, 13scripting elements, 1383scriptlets, 1383standard actions, 1383tag files. See also JSP, custom tags.
custom tags, 563
J2EETutorial.book Page 1456 Thursday, June 3, 2004 10:26 AM
INDEX 1457
declaring, 591–593definition, 1383fragments, 584–585location, 576overview, 573–576packaged, 593unpackaged, 591–593
tag files, directive attributesattribute, 579, 580body-content, 579list of, 577–578tag attributes, declaring, 579
tag files, directivestag variables, declaring, 579, 586–588tags, declaring, 576uses for, 576variable, 580–581variable synchronization, 580–584
tag handlers. See also JSP, custom tags.classic, 563custom tags, 563declaring, 594–595declaring attributes for, 595–596declaring variables for, 596–598definition, 1383invoking, 599simple, 563
tag handlers, programmingattribute validation, 600–602for basic tags, 599cooperating tags, 606–608dynamic attributes, 601–602examples, 608–616iteration tags, 608–610overview, 598scope of objects, 605TagExtraInfo class, 604–606for tags that define variables, 603–606for tags with attributes, 600–602for tags with bodies, 602–603template tag library, 610–613in Web applications, 599
tag libraries. See also JSTL.custom tags, 563
declaring, JSP documents, 523–525declaring, JSP pages, 503–505definition, 502–503, 1383including, 505–506
tags, scriptingwith bodies, 626–627body content, 623classic tags, 623cooperating, 627–629defining variables, 629–630doAfterBody method, 627doInitBody method, 626object sharing, 627–629release method, 627TDL elements, 623
tags, standard set, 24user interface. See JavaServer Faces.in XML syntax. See JSP, documents.
JSP declarations, 620JSP documents, 515
alternative syntax for EL operators, 529creating dynamic content, 528creating static content, 527
preserving whitespace, 527declaring namespaces, 524declaring tag libraries, 523, 525generating a DTD, 533, 535generating tags, 529generating XML declarations, 532–533identifying to the Web container, 535including directives, 525including JSP pages in standard syntax,
527scoping namespaces, 525scripting elements, 529validating, 531
JSP expression language, 489deactivating expression evaluation, 490expression examples, 494expression syntax, 489functions, 496
defining, 496–497using, 496
implicit objects, 492–493
J2EETutorial.book Page 1457 Thursday, June 3, 2004 10:26 AM
1458 INDEX
JSP expression language (Continued)literals, 493operators, 493reserved words, 494type conversion during expression evalua-
tion, 491JSP expressions, 622JSP fragments, 569JSP pages, 471. See also JSP, documents.
adding security to, 1097applets, including, 508–510application-specific objects, 488buffering, 485compilation, 483–484compilation errors, 484compilation into servlets, 483compiling, 865controlling translation and execution, 483converting to JSP documents, 522–523creating and using objects, 488creating dynamic content, 487creating static content, 486deactivating EL expression, 511declarations. See JSP declarations.default mode for EL expression evalua-
tion, 511defining preludes and codas, 512definition, 1382disabling scripting, 620Duke’s Bank, 1318dynamic content, 487–489error handling, 485–486error pages
forwarding to, 485precedence over Web application error
page, 486specifying, 485
examples, 84, 472–482, 537–538, 564, 863
execution, 484expression language
arithmetic operators, 494conditional operators, 494deactivation, 490, 511–512
examples, 494–495functions, 496–497implicit objects, 492–493literals, 493logical operators, 494null values, determining, 494operators, 493–494overview, 489–490relational operators, 494reserved words, 494using expressions, 490–491variables, 491–492
expressions. See JSP expressions.finalizing, 621form-based authentication example,
1105–1114forwarding to other Web components, 507implicit includes, 512–513implicit objects, 488importing classes and packages, 619importing tag libraries, 503including applets or JavaBeans compo-
nents, 508including JSP documents, 527initial response encoding, 826initializing, 620JavaBeans components
creating, 499custom tags, 502–506design conventions, 497–498properties, getting, 502properties, setting, 500–502retrieving properties, 502setting properties, 500–501tag libraries, declaring, 503–505tag libraries, definition, 502–503tag libraries, including, 505–506using, 499
JavaServer Faces. See JavaServer Faces, JSP pages.
life cycle, 482–486page directives, 484, 486
objects, 488–489overview, 471–472
J2EETutorial.book Page 1458 Thursday, June 3, 2004 10:26 AM
INDEX 1459
page encoding, 487, 512, 825preludes and codas, 507properties
getting, 502setting, groups of pages, 510–513setting, individual pages, 500–502
response encoding, 487reusing content, 506–507reusing other Web resources, 506scripting, 620–621scripting elements. See JSP scripting ele-
ments.scriptlets. See JSP scriptlets.setting buffer size, 485setting page encoding, 487setting page encoding for group of, 512setting properties for groups of, 510setting response encoding, 487setting the request encoding, 825shared objects, 488–489specifying scripting language, 619standard syntax, 472static content, 486–487transferring control, 507–508transitioning to JSP documents, 515translation, 483–484
enforcing constraints for custom tag attributes, 600
translation errors, 484translation of page components, 483URLs for running, 869user interface. See JavaServer Faces.using custom tags, 503XML syntax, 472
JSP property groups, 511JSP scripting elements, 617
creating and using objects in, 617example, 618
JSP scriptlets, 621jsp:attribute element, 571–572jsp:body element, 572JspContext interface, 598, 624jsp:declaration element, 530jspDestroy method, 621jsp:directive.include element, 526
jsp:directive.page element, 525jsp:doBody element, 584jsp:element element, 529jsp:expression element, 530jsp:fallback element, 509jsp:forward element, 507jsp:getProperty element, 502jsp:include element, 507jspInit method, 620jsp:invoke element, 584JSplitPane class, 190, 193jsp:output element, 531–532jsp:param element, 508–509jsp:plugin element, 508jsp:root element, 530–531jsp:scriptlet element, 530jsp:setProperty element, 500jsp:text element, 527–528JSSE (Java Secure Socket Extension), 1379JSTL (JavaServer Pages Standard Tag
Library), 24, 537. See also JSP, tag libraries.
core library, 541–549core tags, 543catch tag, 549choose tag, 546conditional, 545flow control, 545forEach tag, 547if tag, 545import tag, 548otherwise tag, 546out tag, 549param tag, 548redirect tag, 549remove tag, 544set tag, 543url tag, 548variable support, 543when tag, 546
definition, 1380example, 538–541functions, 561length function, 561
functions library, 541–542, 561–562
J2EETutorial.book Page 1459 Thursday, June 3, 2004 10:26 AM
1460 INDEX
JSTL (Continued)internationalization library, 541–542,
554–556internationalization tags, 554bundle tag, 555formatDate tag, 556formatNumber tag, 556localization context, 554message tag, 555outputting localized strings, 555param tag, 555parseDate tag, 556parseNumber tag, 556parsing and formatting, 556requestEncoding tag, 555setBundle tag, 555setLocale tag, 555
overview, 24, 537, 541–542SQL library, 541–542, 556–560SQL tags, 556query tag, 557setDataSource tag, 556update tag, 557
XML library, 541–542, 550–554XML tags, 550
core, 551flow control, 552forEach tag, 552out tag, 551param tag, 554parse tag, 551set tag, 551transform tag, 553transformation, 553
JSTL tags. See also JSP, custom tags; script-ing, tags; XML tags.
bundle, 554–555catch, 544, 549choose, 544, 546, 550collaboration, 542–543core XML, 551–552date, 556dateParam, 557–558error handling, 549
escapeXML function, 561–562explicit collaboration, 542–543expression evaluation, 549flow control, 545–547, 552–553forEach, 544, 547, 550, 552–553formatDate, 554, 556formatNumber, 554, 556formatting, 556forTokens, 544, 547functions library, 561–562if, 544, 545, 550implicit collaboration, 542–543import tag, 544, 548indexOf function, 561–562internationalization library, 554–556iterators, 557join function, 561–562message tag, 554–555messaging, 555number formats, 556otherwise, 544, 546, 550out, 544, 550, 551–552parse, 550, 551–552parseDate, 554, 556parseNumber, 554, 556query tag, 557–558redirect tag, 544, 548remove, 544replace function, 561–562requestEncoding, 554Result interface, 559–560set, 543–544, 550, 551–552setBundle, 554–555setDataSource, 556–558setLocale, 554–555setTimeZone, 554setting the locale, 555split function, 561–562SQL library, 556–560substring function, 561–562substringAfter function, 561–562substringBefore function, 561–562time, 556timeZone, 554, 556
J2EETutorial.book Page 1460 Thursday, June 3, 2004 10:26 AM
INDEX 1461
toLowerCase function, 561–562toUpperCase function, 561–562transaction, 557–558transform tag, 550, 553–554transformation, 553–554transformation tag, 554trim function, 561–562update tag, 557–558URL, 548–549url, 544url tag, 544, 548variable support, 543–544when, 544, 546XML library, 550–554
JTA (Java Transaction API), 18. See also transactions,JTA.
definition, 1379overview, 18transactions, 1063–1064, 1069
JTree, displaying content, 223JTree, displaying DOMAdapterNode class, 195–200adapting TreeModel to JTree, 195–204adding import statements, 189–190attribute data, 222CDATA, 222child access, 217comments, 222complex tree, 207–211compressing the tree view, 213converting DomEcho to a GUI, 189creating adapters, 195data types, 221–223display components, 192–194displaying the tree, 223document fragments, 222documents, 222element content, defining, 220–223element data, 221entity data, 222entity reference data, 222GUI framework, 190–191lexical controls, 212modifications, 228
notations, 222processing instructions, 222running the application, 225–227simple tree, 205–207text data, 222TreeModel adapter, 200–204wiring the JTree to the JEditorPane,
223–224JTree, nodes
changing, 236child access, 217DocType, 222getting content of, 235–236inserting, 237making selectable, 213–215removing, 236searching for, 234–235subnodes, concatenating, 220–223traversing, 234types, identifying, 219–220visibility, 216
JTree class, 189JTree classJEditorPane class, 223JTreeModel class, 189JTS (Java Transaction Service), 1379JTS API, 1063
KKey pairs, 1116Keystores, 1116
client certificates, creating, 1120–1121commands, 1121contents, checking, 1121definition, 1116, 1383mutual authentication example, 1135server certificates, creating, 1116–1117
keytool, 1116–1121Knowledge representation XML standards,
1351–1352Knowledge standards
RDF, 1351RDF schema, 1352XTM, 1352
J2EETutorial.book Page 1461 Thursday, June 3, 2004 10:26 AM
1462 INDEX
LLabels, in foreign languages. See interna-
tionalization; localization.lang function, 256last function, 254LDAP services, 22&ldquo, left double quote entity, 61le, JSP operator, 494Left double quote entity, &ldquo, 61Legacy information systems. See EIS tier.Less than, equal (<=)
JSP operator, 494XPath operator, 253
Less than, exclamation point (<!...>), in DTDs, 53
Less than, question mark (<?...?>), in XML markup, 34–35
Less than (<)entity for, 49JSP operator, 494SAX processing, 127XPath operator, 253
Less than entity, <, 49Less than...greater than (<...>), in XML
markup, 31Lexical controls, 212Lexical events. See also CDATA sections.comment method, 164echoing comments, 164, 167–168echoing lexical information, 168–171identifying CDATA sections, 164LexicalHandler, 164–171SAXcomment method, 164echoing comments, 164, 167–168echoing lexical information, 168–171identifying CDATA sections, 164LexicalHandler, 164–171
Lexical information, echoing, 168–171LexicalHandler, 164–171Libraries
DOM (Document Object Model), 106JAXP (Java API for XML Processing),
106, 113
SAX (Simple API for XML), 106XSLT (Extensible Stylesheet Language
Transformations), 106Life cycle
entity beans, 848–850J2EE component, 1383–1384JavaServer Faces, 1384JavaServer Faces applications, 813–814JavaServer Faces pages, 662-669
apply request values phase, 653-666, 667, 669, 745, 768, 783
Faces request, 663faces request, 663–664Faces response, 663faces response, 663–664invoke application phase, 653, 668, 768non-Faces request, 663non-faces request, 663–664non-Faces response, 663non-faces response, 663–664overview, 662process validations phase, 653, 666-
667, 666–667, 669render response phase, 666–667, 668-
669, 668–669, 746, 752, 772, 780, 785, 788
renderResponse method, 663, 666–667
request processing, 663–665request values phase, 666responseComplete method, 663,
666–668restore view phase, 665-666, 669, 785,
788standard request processing lifecycle,
664update model values phase, 658-668,
667–669updateModels method, 667view phase, 665–666views, 662, 665–666
JSP pages, 482–486message-driven beans, 850–851servlets, 441–444
J2EETutorial.book Page 1462 Thursday, June 3, 2004 10:26 AM
INDEX 1463
session beans, 848–850stateful session beans, 847–848stateless session beans, 848Web applications, 84–86
Life-cycle management contract, 1359–1360
LIKE expressions, 1036Line breaks, XML to HTML, 280<LINK> element, 280–281Linkability, XML, 38Linking, XML standards, 1350–1351List boxes, 697–698, 703–704<LIST> element, 281, 293List properties, initializing, 799Listener class, 442–443Listener classes, 441
defining, 442examples, 442
listener element, 591Listener interfaces, 442Listeners, registering on components,
710–712list-entries element, 795Lists, initializing, 801–802Lists and list items, XML to HTML, 293Literals, EJB QL, 1032–1033Literals, JSP pages, 493Local access vs. remote, 842–843Local clients, 841–842Local home interface, 946–947Local home interfaces, 946
defined, 842Local interfaces, 842, 947
defined, 842examples, 946–947, 950requirements, 917
Local JMS transactions, 1204–1211Local names, 351–352Local subsets, 1384Local transactions, JMS, 1204Localization. See also internationalization.
component properties, 741–744context, internationalization, 554dynamic data, 741–742
locale, establishing, 821messages, JSP pages, 703–705, 742–744Web applications
character encoding, 824–825character sets, 824date formats, 823Java localization classes, 819–820labels, 820–823locale, establishing, 821messages, 820–823number formats, 823page encoding, 826request encoding, 825–826resource bundle, setting, 822response encoding, 826–827retrieving localized messages, 822–823UTF-8 encoding, 825
local-name function, 257Locator, 136Locator object, 142Log viewer, 29Logical operators, 494Login authentication, 1100–1105. See also
authentication.Login form, creating, 1107–1108LongRangeValidator, 714lookup method, 1075–1076, 1081lt, JSP operator, 494<, less than entity, 49
MMail session connections, 1080–1083Mail sessions, 1080
connecting to from J2EE components, 1081
creating, 1082Mainframe transaction processing. See EIS
tier.Managed bean creation facility, 659, 769,
793–802, 1384initializing properties with managed-
property elements, 795-802managed bean declarations. See managed
bean declarations.
J2EETutorial.book Page 1463 Thursday, June 3, 2004 10:26 AM
1464 INDEX
Managed bean declarations, 643–644, 769key-class element, 798list-entries element, 795managed-bean element, 793, 800managed-bean-name element, 644, 794managed-bean-scope element, 794managed-property element, 644, 795-
802map-entries element, 795, 797map-entry element, 797message-bean-name element, 715null-value elements, 795property-name element, 644, 715value element, 795values element, 799
Managed bean properties, initializing, 799–801
managed-bean element, 793–795managed-bean-class element, 794managed-bean-scope element, 794managed-property element, 795–796Management contracts, 1359–1360Mandatory attribute, 1048Many-to-many relationships, 837, 930–933Many-to-one relationships, 837Map properties, initializing, 797–798map-entries element, 795, 797–798MapMessage interface, 1171Mapping
errors to error screens, 99JavaServer Faces classes to tags, 647–651resource references to data sources, 104roles, 1390servlets, 1393table relationship example
child table, entity bean, 927–929child table, helper class, 923–926foreign keys, 919–922many-to-many, 930–933one-to-many, 922–930one-to-one, 919–922
URLs to Web components, 96–97Maps, initializing, 801–802Markup, XML, 31
Mathematical Markup Language (MathML), 1353
MathML (Mathematical Markup Language), 1353
Menus, 697–698, 699–700, 703–704Message acknowledgment, JMS
bean-managed transactions, 1219introduction, 1193message-driven beans, 1214
Message bodies, JMS, 1171Message consumers, 1167–1168, 1384Message consumption, 1161Message consumption, JMS
asynchronous, 1161, 1183introduction, 1161synchronous, 1161, 1174
Message factories, 743Message headers, JMS, 1170Message IDs, JMSMessageID message
header field, 1170Message interface, 1171Message listeners, JMS, 838, 1168–1169
examples, 1184, 1233, 1248introduction, 1168
Message producers, 1166–1167, 1385Message producers, JMS, 1166Message properties, JMS, 1171Message selectors, 1168–1169Message selectors, JMS
introduction, 1169specifying for message-driven beans,
1228message tag, 554–555, 640Message transport protocols, 10–12MessageConsumer interface, 1167Message-driven bean class, 1005–1007Message-driven beans, 7, 17, 838
See also backing beansSee also enterprise beansSee also entity beansSee also session beansaccessing, 838coding, 1005, 1224, 1234, 1248consuming messages, 1239–1245
J2EETutorial.book Page 1464 Thursday, June 3, 2004 10:26 AM
INDEX 1465
defined, 838definition, 1384deploying, 1245–1254deployment descriptor elements, 1220description, 838–840examples, 1003, 1222, 1231, 1239, 1246garbage collection, 851introduction, 1214life cycle, 850–851messages from entity beans, 1231–1239messages from session beans, 1222–1230onMessage method, 839, 1005overview, 7, 17requirements, 1005sending messages to. See JMS.transaction types allowed, 1069transactions, 1046, 1049, 1057–1058,
1069uses for, 840vs. entity beans, 838–840vs. session beans, 838–840
Message-driven beans exampleadministered objects, 1007–1009application client, 1004–1005bean characteristics, setting, 1010–1011bean type, specifying, 1010components that send messages,
1011–1014deploying, 1007–1014deploytool
for components that send messages, 1011–1014
JNDI names, specifying, 1013–1014for message-driven beans, 1010–1011resource references, setting, 1012
JNDI names, specifying, 1013–1014message-driven bean class, 1005–1007overview, 1004parsing messages, 1005–1006performing business logic, 1005–1006resource references, setting, 1012running, 1007–1009
MessageDrivenContext interface, 1215MessageFactory class, 347
MessageListener interface, 1168MessageProducer interface, 1166Messages. See also JMS; SAAJ.
acknowledgment, 1193–1197asynchronous processing, 838–840bodies, 1171–1172consuming, 1239–1245creating messages with the MessageFac-
tory class, 743definition, 1158, 1384entity beans, 1231–1239expiration, 1198–1199FacesMessage class, 742in foreign languages. See internationaliza-
tion; localization.getMessage(FacesContext, String,
Object), 753getMessage(FacesContext, String,
Object) method, 743headers, 1170integrity, 1102, 1133localization, 820–823localizing messages, 742-744message factory pattern, 742to message-driven beans. See JMS.MessageFactory class, 743, 752–753MessageFormat pattern, 679, 693outputFormat tag, 693overview, 1169–1170param tag, 693parameter substitution tags. See JavaServer
Faces core tag library; param tag.parsing, 1005–1006performing business logic, 1005–1006persistence, 1197priority levels, 1198producing, 1212–1213properties, 1171queuing messages, 758, 802registering, 802–803session beans, 1222–1230synchronous receiving, 1212–1213using the FacesMessage class to create a
message, 743
J2EETutorial.book Page 1465 Thursday, June 3, 2004 10:26 AM
1466 INDEX
Messages, JMSbody formats, 1171definition, 1158delivery modes, 1197expiration, 1198headers, 1170introduction, 1169persistence, 1197priority levels, 1198properties, 1171
Messages, SAAJaccessing elements, 347adding body content, 348attachments, 342creating, 347getting the content, 354overview, 340
MessagingSee also JMSSee also SAAJSee also SOAPcontracts, 1361definition, 1154domains, 1159–1161standard, 18
Messaging domains, JMS, 1159common interfaces, 1160point-to-point, 1159publish/subscribe, 1160
Messaging tags, 555Method binding, 691MethodBinding class, 775, 784method-binding expressions, 641, 653,
657, 691, 720–721, 749, 808Method permissions, 1143, 1385
specifying, 1143Method-binding backing beans, 657Method-binding expressions, 775, 1385MethodBinding class, 775
Methodscomment, 164create, 1370ignorableWhitespace, 151–152long-running, shutting down, 470
prohibited in transactions, 1057, 1068remove, 1389setCoalescing, 212setExpandingEntityReferences, 212setIgnoringComments, 212setIgnoringElement, 212startCDATA, 165startDTD, 165startEntity, 165
MIMEdata, 64headers, 344
MIME data types, 64–65Minus sign (-)
JSP operator, 494XPath operator, 253
Mixed-content DTD model, 54Mixed-content models, 1385mod, JSP operator, 494mod, XPath operator, 253Mode-based templates, 301Modes
content, 177Text, 206
Modularizing DTDs, 78Modules, 13–14Multimedia data file entities, 64–65Multiplicity, in relationships, 837Multitiered applications, 2–8Mutual authentication, 1123
certificates, creating, 1116–1118, 1120–1121
definition, 1385enabling, 1123–1124example, 1133, 1135–1142overview, 1103–1105SSL support, 1123–1124verifying, 1124
MVC architecture, 477MyAppClient.java class, 426–427MyUddiPing.java, 373–380
J2EETutorial.book Page 1466 Thursday, June 3, 2004 10:26 AM
INDEX 1467
NNAICS (North American Industry Classifi-
cation System), 400, 1386using to find organizations, 401, 421
name function, 257Name interface, 348Names
fully qualified, 349, 352local, 351–352
Namespace functions, 257Namespace prefixes, 73–74Namespaces, 349, 1347. See also JAXP.
and attributes, 71collisions, avoiding, 1076defining, 72defining a prefix, 73defining in DTD, 72defining prefixes, 73–74definition, 1385functions, 257node, 248overview, 19prefix, 350purpose of, 71referencing, 72–73specification, 71target, 242using, 71validating with multiple, 239XML standard, 1347
namespace-uri function, 257namespace-url function, 257Name-to-object bindings, 1076Naming and directory functionality, 21–22Naming conflicts, 70–71Naming context
definition, 1385JNDI, 1076location of, 22overview, 21–22
Naming conventions, 846–847, 1076Naming environment, 21–22, 1385NamingContainer interface, 646Navigation
backing bean methods, 755–757backing bean methods, referencing,
720–721EJB QL (Enterprise JavaBeans Query
Language), 1016JavaServer Faces model, 654–656JavaServer Faces pages, 640–641path expressions, 1032rules, configuring, 805–808
Navigation model, 640, 654-656action attribute, 639, 657, 668, 685,
719–720, 768, 775action method, 805action methods, 655, 755, 805, 807ActionEvent class, 721example navigation rules, 806logical outcome, 685, 720–721, 755–756,
805, 807navigation case, 655navigation rules, 640, 655, 685, 721,
805–806NavigationHandler class, 655–656,
668, 685, 756referencing methods that perform naviga-
tion, 720, 755writing a backing bean method to perform
navigation processing, 755NDS services, 22ne, JSP operator, 494Nested elements, 54Nesting
DTD elements, 54tags, 33, 46
.NET interoperability, 19Network security requirements, 1093,
1096–1097Network services, 12. See also WSDL.Never attribute, 1049NIS services, 22node function, XPath wildcard, 252Nodes, 177
attribute, 222, 248Attribute, 207CDATA, 211
J2EETutorial.book Page 1467 Thursday, June 3, 2004 10:26 AM
1468 INDEX
Nodes (Continued)changing, 236comment, 222, 248Comment, 206constants, 219content, 235controlling visibility, 216DocType, 208, 222document, 222document fragment, 222element, 230, 248entity, 222entity reference, 211inserting, 237namespace, 248navigating to, 180notation, 222processing instruction, 209, 222, 248removing, 236root, 230, 248SAAJ and, 341searching, 234text, 230, 233, 248traversing, 234types, 196, 248value, 177
Nodes, DOMchanging, 236DocType, 222element nodes, creating, 230–231getting content of, 235–236inserting, 237making selectable, 213–215removing, 236searching for, 234–235subnodes, concatenating, 220–223text, 175traversing, 234types, identifying, 219–220types of, 175, 177–181visibility, 216
Node-set functions, 254Nonconfigurable services, 9. See also
containers.
Non-faces request, 663–664Non-faces response, 663–664Nonfatal errors, 145–146Non-Java-based platforms, 19–20. See also
JAX-RPC.NON_PERSISTENT delivery mode, 1197Nonvalidating parser, 139Nonvalidating parsers, SAX
DTD’s effect on, 149–151error handling, 139–147
Non-XSL tags, 284Normalization, 77–78, 1386normalize-space function, 255Normalizing
data, 77DTDs, 78
Normalizing DOM, 231–233North American Industry Classification Sys-
tem (NAICS), 1386not, JSP operator, 494not clause, 300not function, 256NOTATION keyword, 64Notation nodes, 222notationDecl method, 172Notations, 222, 1386<NOTE> element, 281, 291–292, 294–295NotSupported attribute, 1048NULL comparison expressions, 1036NULL values, 1038–1039Null values, determining, 494Number format tags, 556number function, 256NumberConverter, 709–710NumberConverter converter, 709–710Numbers
conversion, 709–710formatting, 301generating, 301localization formats, 823
Numeric functions, 256
J2EETutorial.book Page 1468 Thursday, June 3, 2004 10:26 AM
INDEX 1469
OOASIS (Organization for the Advancement
of Structured Information Stan-dards), 74, 1386
OBJECT keyword, 1042Object Management Group (OMG), 1386Object request broker (ORB), 1386Object Transaction Service (OTS), 1386ObjectMessage interface, 1171Objects
binding to data, 686–689getting, 944JSP pages, 488–489Locator, 142Parser, 121references, passing, 891–892scripting, 617sharing in scripts, 627–629
Objects, administered (JMS), 1163OMG (Object Management Group), 1386One-to-many relationships
bean-managed persistence, 922–930container-managed persistence, 987container-managed relationships, 837example, 987primary keys, 987
One-to-one relationshipsbean-managed persistence, 919–922container-managed persistence, 986container-managed relationships, 837example, 986
One-way messaging, 1386Online banking example
account informationchanging, 1305–1306creating, 1317customer access, 1318–1319getting, 1304–1305
account-customer relationship manage-ment, 1304
adding groups and users to the default realm, 1329
application, packaging and deploying, 1334–1335
application client, 1310, 1312–1317class methods, 1313classes, 1311classes and their relationships,
1311–1312compiling, 1330methods, 1316overview, 1310–1311packaging, 1332running, 1338
authentication, 1326building and deploying, 1328compiling, 1330component interaction, 1301creating the data source, 1329custom tags, 1320customer information, creating, 1317database
creating, 1329reading data from, 1315–1317servers, setting up, 1328–1329tables, 1308–1309validating updates, 1315–1317
database tables, 1308deploying, 1334–1335enterprise beans, 1309
compiling, 1330helper classes, 1307method permissions, 1309packaging, 1330–1332protecting, 1309session beans, 1303–1306tables representing business entities,
1308tables that hold the next primary key,
1309entity beans, 1303–1304, 1306groups, adding, 1329helper classes, 1307internationalization, 1327–1328internationalizing clients, 1327JavaBeans components, 1319JDBC data source, 1329JNDI names, 1335, 1338
J2EETutorial.book Page 1469 Thursday, June 3, 2004 10:26 AM
1470 INDEX
Online banking example (Continued)JNDI names, reviewing, 1335–1338JSP pages, 1318overview, 1301packaging, 1334–1335packaging and deploying, 1330populating the database, 1329presentation, 1319–1320security roles, 1309servlet, 1323session beans, 1303, 1306user interface
creating, 1313getting data from, 1315–1317updating, 1313
users, adding, 1329Web client, 1318, 1328
client components, 1320–1323compiling, 1330component interaction, 1325design strategies, 1319–1320overview, 1318–1319packaging, 1333–1334packaging and deploying, 1333–1334protecting resources, 1325–1326request processing, 1323–1325running, 1339
Web resources, protecting, 1326onMessage method
introduction, 1168message-driven beans, 839, 1005, 1214
Operator precedenceEJB QL, 1033XPath, 252
OperatorsJSP pages, 493–494XPath, 252–253
orJSP operator, 494XPath operator, 253
ORB (object request broker), 1386ORDER BY clause, 1027–1030OrderApp. See CMP examples, inventory
and ordering.
Organization for the Advancement of Struc-tured Information Standards (OASIS), 74, 1386
Organization interface, 405Organizations
creating with JAXR, 404finding
by classification, 401, 421by name, 400, 421using WSDL documents, 424
keys, 405, 411primary contacts, 405publishing with JAXR, 408, 420, 422, 424removing with JAXR, 411, 421
Organizations, JAXRcreating, 404–406finding by classification, 401–403finding by name, 400–401publishing, 408service bindings, 407services, adding, 407
OS principal, 1386otherwise tag, 544, 546, 550OTS (Object Transaction Service), 1386out tag, 544, 550, 551–552Outbound contracts, 1360–1361outputFormat tag, 693–694outputLabel tag, 692outputLink tag, 692–693outputText tag, 691–692
Ppackage-appclient tool, 26Packaged tag files, 591–593Packaging
application clients, 861–862applications, 12–14asynchronous message consumption,
1185–1186bean-managed transactions, 1061CMP example, 961–964Coffee Break server, 1295–1296container-managed transactions,
1053–1055
J2EETutorial.book Page 1470 Thursday, June 3, 2004 10:26 AM
INDEX 1471
enterprise application, 960, 970–971enterprise beans, 857–858, 881form-based authentication example, 1110inventory and ordering example, 993–999J2EE application clients, 432JavaServer Faces technology, 1297–1298JAX-RPC, 318–320, 1292–1294JAX-RPC service, 1292–1294JDBC transactions, 1059JSP (JavaServer Pages), 13JTA transactions, 1065–1066message-driven beans, 1227–1228online banking example, 1330–1335overview, 12–14SAAJ service, 1294–1295session beans, 431, 937, 1226–1227shopping cart example, 881–882synchronous message receives, 1181timer service example, 897–898Web clients, 865, 1333–1334Web modules, 88–89Web services, 318–320, 887–888
Page authors, 634–635page directive, 619Page encoding, 487, 512, 826Page navigation. See navigation model.PageContext interface, 624pageContext object, 492Pages. See JSP.pageScope object, 493PAM (Pluggable Authentication Module)
framework. See JAAS.<PARA> element, 281, 292–293Paragraphs, transforming XML to HTML,
292param object, 492param tagimport tag, 544, 548message tag, 554–555query tag, 557–558redirect tag, 544transform tag, 550transformation tag, 554update tag, 557–558
url tag, 544, 548Parameter entities, 66–68, 155, 1386Parameter entity, 66Parameterized DTDs, parsing in SAX,
162–163paramValues object, 492parse method, 271parse tag, 550, 551–552Parsed
character data, 54entity, 63, 155
Parsed character data (PCDATA), 54Parsed entities, 63, 155, 1387parseDate tag, 554, 556parseNumber tag, 554, 556Parser
implementation, 155modifying to generate SAX events, 269nonvalidating, 139using as a SAXSource, 275validating, 155
error handling, 161Parser object, 121ParserConfigurationException, 144Parsers
definition, 1387SAX
choosing, 155nonvalidating, 139–147, 149–151pull parser, 116validating, 155–161
XSLTcreating, 267–269generating SAX events, 269–275modifying, 269–275as a SAXSource, 275–277
Parsing parameterized DTDs, 162–163Passivation, 847, 1387. See also activation.Passwords, 1127Passwords, protecting, 1097–1098,
1113–1114Path expressions
definition, 1016examples, 1032
J2EETutorial.book Page 1471 Thursday, June 3, 2004 10:26 AM
1472 INDEX
Path expressions (Continued)expression types, 1031navigation, 1032syntax, full, 1030–1032
Pattern, 247PCDATA (parsed character data), 54PCDATA versus CDATA, 54Percent sign (%)
in entity names, 67JSP operator, 494
Period (.)JSP operator, 491–492in XML markup, 43
Persistence, 833–834, 1387. See also BMP; CMP.
bean-managed. See BMP.container-managed. See CMP.entity beans, 833JMS messages, 1197session beans, 831types, 834
Persistent dataand entity beans, 7overriding, 9, 17, 21
PERSISTENT delivery mode, 1197Persistent fields, 835
container-managed persistence, 835–836definition, 1016, 1387deploytool, 978EJB QL, 1016, 1030example, 943examples, 943
Physical schemas, 835Pinging UDDI, 373–380Platform APIs, 16–17. See also APIs.Platform services
See JMSSee resource connectionsSee securitySee transactions
PlayerBean. See CMP examples.Pluggability layer, 105Pluggable Authentication Module (PAM)
framework. See JAAS.
Plus sign (+)DTD qualifier, 53JSP operator, 494XPath operator, 253
POA (Portable Object Adapter), 1387PointBase database, 26, 101, 1078–1080.
See also resource connections.starting, 28stopping, 28
PointBase database serverdefinition, 26overview, 28starting/stopping, 28startserver script, 28stopserver script, 28Windows commands, 28
Point-to-point connection, SAAJ, 353Point-to-point messaging domain,
1159–1160Point-to-point messaging system, 1387Populating databases, 101–102Port numbers, 25Portable deployment descriptors, 12. See
also deployment descriptors.Portable Object Adapter (POA), 1387position function, 254Positional functions, 254Positional functions, XPath, 254Postal addresses
retrieving with JAXR, 416, 422specifying with JAXR, 414, 422
Postal addresses, JAXR classifications, 422–423
Prerequisites, xxxviiPresentation, 1319–1320, 1350–1351Presentation-oriented Web applications, 81Primary key class, 934–935, 982Primary keys, 987. See also ejbFindByPri-
maryKey method.automatically generating, 983bean-managed persistence, 933CMP example, 980–984composite, 933, 980compound, 988–989
J2EETutorial.book Page 1472 Thursday, June 3, 2004 10:26 AM
INDEX 1473
container-managed persistence, 980defined, 834definition, 1387in the entity bean class, 935–936entity beans, 834example, 987examples, 934, 982generating, 983–984getting, 936methods for setting, 850one-to-many relationships, 987primitive, 987–988primitive types, 987returned by create method, 905returning, 905–906unknown, 987
Primitive primary keys, 987–988Primitives, JAX-RPC, 325Principal name, 1089Principals, 1098, 1387PrintWriter class, 451Priority levels, for messages, 1198JMSPriority message header field, 1170
Privileges, 1387Procedures, executing remotely. See JAX-
RPC; RPCs.Process validations phase, 666–667Processing
command line argument, 119data, 39instruction nodes, 209, 222, 248instructions, 35, 46, 137, 179
Processing instructionsdefinition, 1387displaying in a JTree, 222SAX, 137–139XML, 35–36, 46–47
processingInstruction, 135, 138processingInstruction handler,
137–139Product provider role, 14Programmatic security
definition, 1087, 1387EJB tier, 1145
Web tier, 1098–1100Programming model, JMS, 1162Programs
See application clientsSee applicationsSee scriptingSee servlets
Prohibited methods in transactions, 1057, 1068
Prologs, 34–35, 1388Propagating security identity, 1149–1151Properties
binding to component values, 715–716initializing, 795–796JAXR connections, 396–399JSP pages
getting, 502setting, groups of pages, 510–513setting, individual pages, 500–502
list, initializing, 799managed bean, initializing, 799–801map, initializing, 797–798
Protecting passwords, 1097–1098, 1113–1114
Protecting Web resources, 1094Providers
JAXR, 391JMS, 1158
Proxies, 313, 321HTTP, setting, 398
Public identifiers, 109Public key certificates, 1102, 1133, 1388Public key cryptography, 1116PUBLIC keyword, 62–63Publishing
business information on the Internet, 12. See also ebXML; UDDI.
classification schemes, 421–422organizations, JAXR, 408organizations, WSDL documents, 424WSDL document concepts, 423
Publish/subscribe messaging domain, 1160durable subscriptions, 1200introduction, 1160
J2EETutorial.book Page 1473 Thursday, June 3, 2004 10:26 AM
1474 INDEX
Publish/subscribe messaging system, 1388PubQuery session bean, coding, 427Pull parser, 116
QQName object, 327Query strings, 1388query tag, 557–558Querying entity beans. See EJB QL.Querying XML registries, 399–400Question mark (?), DTD qualifier, 53Queue interface, 1164Queues. See also point-to-point messaging
system.creating, 1164, 1178introduction, 1164looking up, 1004, 1164temporary, 1199, 1233
", quote entity, 49Quote ("), entity for, 49
R.rar file extension, 14RAR (Resource Adapter Archive) files,
1357, 1388RDF (Resource Description Framework)
definition, 1388schema, 1352, 1388XML standard, 1351–1352
&rdquo, right double quote entity, 61Reading XML files
DOM (Document Object Model), 182–188, 258–259
Xalan, 258–259XSLT, 258–259
Realms, 1088–1089, 1388. See also security, policy domains.
recover method, 1194Redelivery of messages, 1193–1194JMSRedelivered message header field,
1170redirect tag, 544, 548Reentrant entity beans, 1389
References. See entities, references.Referencing
DTDs, 56–57entities
binary entities, 64–66with entity references, 66external entities, 62–63parameter entities, 66–68unparsed entities, 64–66
namespaces, 72–73Referencing backing bean methods, 719-723
for handling action events, 721, 757, 763, 775
for handling value-change events, 657, 722
for performing navigation, 720, 755, 775for performing validation, 722, 758
Refreshing instance variables, 907–908Registered trademark entity, &rtrade, 61RegisteringActionListener, 711–712listeners on components, 710–712messages, 802–803ValueChangeListener, 711
Registering custom converters, 804converter element, 804converter-class element, 804converter-id element, 804
Registering custom renderers, 771, 786, 808renderer element, 809renderer-class element, 809renderer-type element, 809render-kit element, 809render-kit-id element, 809
Registering custom UI components, 772, 810
component element, 810component-class element, 810component-extension element, 810component-type element, 810property element, 810
Registering custom validators, 803validator element, 803validator-class element, 803
J2EETutorial.book Page 1474 Thursday, June 3, 2004 10:26 AM
INDEX 1475
validator-id element, 803Registering messages, 802default-locale element, 803locale-config element, 803message-bundle element, 803supported-locale element, 803
Registries. See also XML registries.accessing over the Web, 20. See also
JAXR.definition, 389, 1389deleting from, 1263–1265ebXML, 390–391getting access to public UDDI registries,
394Java WSDP Registry Server, 390, 1291private, 390publishing to, 1259–1263querying with JAXR, 399submitting data with JAXR, 404UDDI, 390UDDI registries, 390–391using public and private, 418
Registry objects, 392retrieving with JAXR, 425
Registry providers, 1389Registry technologies, 20RegistryObject interface, 392RegistryService interface, 392, 399RegistryService object, 399Relational operators, 494Relationship fields
CMP example, 943defined, 836definition, 1016, 1389deploytool, 976direction, 837EJB QL, 1016, 1030enterprise beans, 836examples, 943modifying by local clients, 953
Relationshipsbean-managed persistence, 834container-managed. See container-man-
aged relationships.
multiplicities, 837Relationships, entity beans
configuring, 995–996defining, 1002many-to-many, 837, 930–933many-to-one relationships, 837one-to-many
BMP (bean-managed persistence), 922–930
CMP (container-managed persistence), 987
container-managed relationships, 837example, 987primary keys, 987
one-to-oneBMP (bean-managed persistence),
919–922CMP (container-managed persistence),
986container-managed relationships, 837example, 986
self-referential, 985–986unidirectional relationships, 837–838,
987RELAX NG, 1349release method, 627Reliability, JMS
advanced mechanisms, 1200basic mechanisms, 1193durable subscriptions, 1200local transactions, 1204message acknowledgment, 1193message expiration, 1198message persistence, 1197message priority levels, 1198temporary destinations, 1199
Reliability mechanisms, JMSadvanced, 1200–1211basic, 1193–1199
Remote access vs. local, 842–843Remote clients, 840–841Remote connectivity model, 9. See also con-
tainers; JAX-RPC.
J2EETutorial.book Page 1475 Thursday, June 3, 2004 10:26 AM
1476 INDEX
Remote interfacescoding, 855defined, 841definition, 1389description, 879–880entity and session beans, 841examples, 855, 879, 916requirements, 880
Remote Method Invocation (RMI), 1390and messaging, 1154
Remote procedure calls (RPCs), 19, 313. See also JAX-RPC.
remove, transactions, 1049remove method, 1389
bean-managed persistence, 907life cycles, 848, 850
remove tag, 544Render kit, 647, 1389Render response phase, 668–669rendered attribute, 682Renderer, component combinations,
764–765Renderer class, 786–788Renderer type, identifying, 788Renderers, 763–764, 1389Rendering, 682, 786–788Rendering UI components. See component
rendering model.replace function, 561–562Representing a single client, 831–833Representing business objects, 833–838Request encoding, 825–826request object, 492Request processing, 663–665Request URIs, protected, 1094Request values phase, 666Request-and-response model, 11. See also
SOAP.RequestDispatcher interface, 461requestEncoding tag, 554Request.java, 371–373Request/reply mechanismJMSCorrelationID message header
field, 1170
JMSReplyTo message header field, 1170temporary destinations and, 1199
Request-response messaging, 344, 1265–1266, 1389
Requests, 449. See also HTTP requests.appending parameters, 508customizing, 456–458filtering, 454getting information from, 449–450retrieving a locale, 821tracking, 468–469
requestScope object, 493Required attribute, 1047Required files, 845–846Required transaction attribute, 1218RequiresNew attribute, 1047–1048Requiring a value. See required attribute;
UI component tag attributes.Reserved words, JSP pages, 494Reserved words, XML, 36Resource adapter, JAXR, 394
creating resources, 429Resource Adapter Archive (RAR), 1388Resource Adapter Archive (RAR) files, 1357Resource adapter contracts, 1359–1362Resource adapter deployment descriptors,
13–14Resource adapter modules, 13–14, 1390Resource adapter security, configuring,
1148–1149Resource adapters, 20–21, 1357–1359,
1389–1390. See also J2EE Con-nector Architecture.
application contracts, 1359archive files. See RAR files.CCI, 1362connection management contract, 1361importing transactions, 1362JAXR, 429life-cycle management contract, 1359messaging contract, 1361security, 1148security management contract, 1361system contracts, 1359
J2EETutorial.book Page 1476 Thursday, June 3, 2004 10:26 AM
INDEX 1477
transaction management contract, 1361work management contract, 1359
Resource bundles, 741, 743–744, 820, 822backing options, 820constructing, 820
Resource configuration, 1289–1290Resource connections. See also connections.
ConfirmerBean example, 1082–1083connection pools, 1077data source, definition, 1077database connections, 1078–1080DataSource objects, 1077HTMLReaderBean example, 1085–1086JDBC API, 1077JDBC resources, definition, 1077JNDI naming, 1075–1076mail session connections, 1080–1083overview, 1075URL connections, 1083–1086
Resource Description Framework (RDF). See RDF.
Resource manager connection factory, 1390Resource manager connections, 1390Resource managers, 1390Resource references
declaring, 99–100mapping to data sources, 104setting, 1012specifying, 103–104specifying in J2EE components, 1079,
1082, 1085specifying in Web applications, 103
ResourceBundles, referencing, 704–705Resources, 1075. See also data sources; mail
sessions; URL connections.JAXR, 429JMS, 1213
Response encoding, 487, 826–827response object, 492Responses, 451. See also HTTP responses.
buffering output, 451creating, 451–453customizing, 456–458filtering, 454
including other resources, 461–462setting headers, 448
Result interface tag, 559–560Reusing content, 506–507. See also JSP, tag
files.Right double quote entity, &rdquo, 61Rivest, Shamir, and Adelman (RSA), 1117RMI (Remote Method Invocation), 1390RMI-IIOP, 1390Role mapping, 1390Roles (development), 14–16, 1390Roles (security). See also security.
authorizing, 1093, 1097creating, 1090, 1097definition, 1088, 1090, 1391versus groups, 1090mapping, 1090–1092, 1098–1100method permissions, declaring, 1143overview, 1088–1089references, declaring, 1098–1100references, linking, 1098–1100
Rollback, 1046, 1050–1051, 1391rollback, 1046, 1057–1058, 1063,
1068–1069rollback method (JMS), 1204Rollbacks. See transactions, rollbacks.Root, 1391
element, 42node, 230, 248
Root element, 530–531Roster example. See CMP examples.RosterApp. See CMP examples.RosterBean. See CMP examples.RosterClient. See CMP examples.round function, 256RPCs (remote procedure calls), 19, 313. See
also JAX-RPC.RSA (Rivest, Shamir, and Adelman), 1117&rtrade, registered trademark entity, 61Running procedures remotely. See JAX-
RPC; RPCs.Runtime deployment descriptors, 12–13. See
also deployment descriptors.
J2EETutorial.book Page 1477 Thursday, June 3, 2004 10:26 AM
1478 INDEX
SSAAJ (SOAP with Attachments API for
Java), 20, 339. See also SOAP.connections, 344–345definition, 1394deploying, 1294–1295examples, 371messages, 340overview, 20, 340SOAPConnection objects, 344–345specification, 339tutorial, 345uses for, 339
SAAJ messageswith attachments, 342–344, 385–387contents, 341and DOM, 344request-response, 344without attachments, 341–342XML document structure, 340–341
SAAJ messages, tutorialaccessing message elements, 347actor attributes, 363–365adding DOM documents, 381–385AttachmentPart object, 358–361attachments, adding, 358–361Attachments.java, 385–387attributes, adding, 361–366code examples, 371–388content, addingAttachmentPart object, 358–360from DOM documents, 357, 381–385headers, 355–356, 380–381message body, 348–353, 357SOAPPart object, 353
content, getting, 354–355content, manipulating, 358creating messages, 346–347DOMExample.java, 381–385DOMSrcExample.java, 381–385header attributes, 362–363HeaderExample.java, 380–381message headers, 380–381message parts, 347
message with attachment, 385–387mustUnderstand attribute, 365–366MyUddiPing.java, 373–380overview, 361–362pinging UDDI, 373–380Request.java, 371–373retrieving fault information, 387–388sending messages, 353–354, 371–373SOAP faultsDetail object, 368fault actors, 368fault codes, 367fault strings, 368overview, 366–368retrieving fault information, 369–371,
387–388SOAPConnection object, 353SOAPFactory class, 349SOAPFault objects
creating, 368–369definition, 367populating, 368–369
SOAPFaultTest.java, 387–388traversing DOM documents, 381–385
saveConcepts method, 408saveOrganizations method, 408Saving timers, 893–894SavingsAccountBean class. See BMP
examples; online banking exam-ple.
SAX (Simple API for XML), 115, 1344. See also DOM.
APIs, 107–109compiling and running programs
documents and data, 135events, identifying, 129–131overview, 128whitespace, compressing, 132–133
compiling and running programs, outputchecking, 129compressing, 132–133inspecting, 134–135
converting data to XML, 116–117definition, 1391
J2EETutorial.book Page 1478 Thursday, June 3, 2004 10:26 AM
INDEX 1479
documents, locating, 136–137versus DOM, 115echoing entity references, 153–154echoing external entity, 153–154echoing XML files
application skeleton, 118classes, importing, 118ContentHandler, 119–120I/O, setting up, 119overview, 117parser, setting up, 120–121
echoing XML files, event handlingcharacter events, 125–127document events, 123–124element events, 124–125
echoing XML files, outputspacing, 122–123writing, 121–122
empty elements, 153entities
external, echoing, 153–154general, 154parameter, 155parsed, 155summarizing, 154–155unparsed, 155
entity references, echoing, 153–154error handling
DTD warnings, 163error types, 139–140exception classes for, 109fatal errors, 140IOException, 144–145nonfatal errors, 145–146ParserConfigurationException,
144SAXException, 141–143SAXParseException, 140–141, 143warnings, 146–147
event handlersCDATA sections, 147–149. See also lex-
ical events.document locator, 136–137DTDs, 171–172entity resolution, 172–173
error handlers, 139–147, 161processing instructions, 137–139special characters, 147–149
event handlers, lexical events. See also CDATA sections.
comment method, 164echoing comments, 164, 167–168echoing lexical information, 168–171identifying CDATA sections, 164LexicalHandler, 164–171startCDATA method, 165startDTD method, 165startEntity method, 165
events, 269extensions, 109external entities, echoing, 153–154general entities, 154helper classes, 109ignorableWhitespace method,
151–152interfaces, 109lexical events. See also CDATA sections.comment method, 164echoing comments, 164, 167–168echoing lexical information, 168–171identifying CDATA sections, 164LexicalHandler, 164–171startCDATA method, 165startDTD method, 165startEntity method, 165
library, 106output
checking, 129compressing, 132–133inspecting, 134–135spacing, 122–123writing, 121–122
overview, 19packages, 109parameter entities, 155parsed entities, 155parser, choosing, 155parser, nonvalidating
DTD’s effect on, 149–151error handling, 139–147
J2EETutorial.book Page 1479 Thursday, June 3, 2004 10:26 AM
1480 INDEX
SAX (Continued)parser, validating
documents, associating with schemas, 158–159
error handling, 161error handling, setting up, 158factory, configuring, 155–156overview, 155parser properties, setting, 157validation errors, 159–161XML schema, validating, 156–157
parsing parameterized DTDs, 162–163processing instructions, 137–139processingInstruction, 135processingInstruction handler,
137–139pull parser, 116setDocumentLocator, 135, 136–137state dependent processing, 115, 116state independent processing, 115, 116summarizing entities, 154–155transforming data, 247unparsed entities, 155uses for, 106, 116–117whitespace
compressing, 132–133ignorable, 151–152tracking, 151–152
XML, treating as text, 148–149. See also CDATA sections; lexical events.
XML standard, 1344–1345SAX parser, XML Schema properties, 157SAXException, 141–143SAXParseException, 140–141, 143
generating, 142SAXParser API, 107SAXParser class, 121SAXParserFactory API, 107SAXReader API, 107Scalable Vector Graphics (SVG), 1353Schema for Object-oriented XML (SOX),
1349Schemas. See also capture-schema tool.
associating a document with, 158, 238capturing, 992
declaringin the application, 241in XML data set, 241
default, 242definition, 1391definitions, 242
specifying, 239RDF Schema, 1352RELAX NG, 1349Schematron, 1350SOX, 1349SOX (Schema for Object-oriented XML),
1349standards, 1348using existing, 74XML, 1349XML Schema, 1349
Schematron, 1350Scope, transactions, 1046–1047, 1050Scope objects, 444–445Scope of objects, 605Scripting
creating and using objects, 617declarations, 620–621disabling, 620elements, 520–530examples, 618–619expressions, 622–623finalizing JSP pages, 620–621initializing JSP pages, 620–621languages supported, 619scriptlets, 621–622tag handlers, 623–625tags
with bodies, 626–627body content, 623classic tags, 623cooperating, 627–629defining variables, 629–630doAfterBody method, 627doInitBody method, 626object sharing, 627–629release method, 627TDL elements, 623
using, 619
J2EETutorial.book Page 1480 Thursday, June 3, 2004 10:26 AM
INDEX 1481
variables, declaring, 620–621Scriptlets, 530, 621–622<SECT> element, 281Secure connection, specifying, 1097–1098Secure connections, 1114Secure Socket Layer (SSL). See SSL.Security
See also authenticationSee also containersSee also JAASSee also online banking exampleapplication client tier, 1145
callback handlers, 1146login modules, 1146
application client-tier security, 1145–1146
attributes, 1391certificate realm, 1088–1089component-managed sign-on, 1148constraints, 1094
configuring, 1093, 1095definition, 1094, 1391
container trust relationships, 1151container-managed sign-on, 1147context, 1392credentials for XML registries, 404declarative, 1087deployment descriptors
creating, 1092–1100example, 1131viewing, 1092, 1112
digital certificatesfor Application Server, 1115,
1119–1120client-side, creating, 1120–1121keytool, 1116, 1121mutual authentication, 1120–1121overview, 1115–1116principal name, 1089server-side, creating, 1116–1118signing, 1118–1119
EIS tier, 1147component-managed sign-on, 1148container-managed sign-on, 1147
sign-on, 1147EIS-tier, 1147–1149EJB tier, method permissions. See method
permissions.EJB-tier, 1142–1145elements, setting, 1092–1100examples
basic authentication, 1126–1133client-certificate authentication,
1133–1142form-based authentication, 1105–1114mutual authentication, 1133–1142
file realm, 1088–1089form-based authentication
configuring, 1097–1098example, 1105–1114overview, 1101–1102protecting passwords, 1113–1114
groups, 1088overview, 1088–1089roles, mapping, 1090–1092
identities, 1149–1151. See also roles, mapping.
client authentication, configuring, 1151configuring, 1150–1151propagating, 1149–1151trust between containers, 1151
intranet security, 1143–1145IOR security, configuring, 1143–1145J2EE versus operating system, 1088JACC, 1151JSP pages, adding security to, 1097keystores, 1116–1117, 1135login authentication
example, 1105–1114overview, 1100–1105
method permissions, declaring, 1143mutual authentication
certificates, creating, 1116–1118, 1120–1121
enabling, 1123–1124example, 1133–1142overview, 1103–1105verifying, 1124
J2EETutorial.book Page 1481 Thursday, June 3, 2004 10:26 AM
1482 INDEX
Security (Continued)network security requirements, 1093,
1096–1097overview, 8, 1087–1092passwords, protecting, 1097–1098,
1113–1114permission sets, 1392permissions, 1392policy domains, 1392programmatic, 1087, 1098, 1145programmatic security
EJB tier, 1145Web tier, 1098–1100
propagating security identity, 1149–1151protecting enterprise beans, 1309protecting passwords, 1097–1098,
1113–1114protecting Web client resources,
1325–1326protecting Web resources, 1094realms, 1088–1089request URIs, protected, 1094resource adapter security, 1148resource adapters, 1148roles, 1088
authorizing, 1093, 1097creating, 1090, 1097definition, 1088, 1090, 1391versus groups, 1090mapping, 1090–1092, 1098–1100method permissions, declaring, 1143overview, 1088–1089references, declaring, 1098–1100references, linking, 1098–1100
secure connection, specifying, 1097–1098servlets, adding security to, 1097session management, 1098SSL connector, 1122–1124SSL support
and basic authentication, 1113–1114components of, 1115confidentiality, 1114definition, 1114–1115digital certificates, 1115–1122
and form-based authentication, 1113–1114
integrity, 1114mutual authentication, enabling,
1123–1124mutual authentication, verifying, 1124overview, 1114–1115passwords, protecting, 1097–1098,
1113–1114protecting passwords, 1113–1114running, 1122–1123secure connection, specifying,
1097–1098session management, 1098SSL connector, 1122–1124verifying, 1122
technology domains, 1392transport-level security, 1125–1126trust-stores, 1117, 1135unauthenticated access, 1145unrestricted access, allowing, 1094URIs, protected, 1094users, 1088
adding to Application Server, 1089determining name, 1098determining role, 1098J2EE versus operating system, 1088managing, 1089overview, 1088–1089roles, mapping, 1090–1092
verifyingmutual authentication, 1124SSL support, 1122
views, 1392Web resource collections
defining, 1093, 1096editing content, 1096
Web services, 1133–1142Web services security
basic authentication, 1126–1133mutual authentication, 1133–1142overview, 1125–1126
Web tier, programmatic, 1098Web-tier, 1092–1100
J2EETutorial.book Page 1482 Thursday, June 3, 2004 10:26 AM
INDEX 1483
X.509 certificatescommon name field, 1089definition, 1102–1103overview, 1089
XMLbasic authentication example,
1126–1133client-certificate authentication exam-
ple, 1133–1142mutual authentication example,
1133–1142overview, 1125–1126
Security constraints, 1094Security identity, 1149
caller identity, 1149propagating to enterprise beans, 1149specific identity, 1149
Security management contract, 1361Security role references, 1098
mapping to security roles, 1099Security roles, 1090
creating, 1090Duke’s Bank, 1309mapping to users and groups, 1091
SEI (service element endpoint), 315, 316–318
SELECT clause, 1040–1043Select methods, 944, 958, 978, 990
EJB QL, 1022, 1041Selection criteria, 250selectItem tag, 703selectItems tag, 701–703selectManyCheckbox tag, 698selectOneMenu tag, 699–700Selector methods. See select methods.Self-referential relationships, 985–986send method, 1166Serializers, generating. See wscompile tool.Server, authentication, 1102Server authentication, 20. See also JAX-
RPC.Server certificates, 1116–1118, 1392. See
also digital certificates.Server log, 25, 28–29
Server principals, 1392Servers
authenticating, 1133certificates, 1115
Servers, components that run on, 3Servers, J2EE
deploying on more than one, 1239, 1246running JMS clients on more than one,
1187Server-side utility classes, 6. See also Web
components.Service bindings
adding to an organization with JAXR, 407finding with JAXR, 403
Service bindings, JAXRconnections, 403organizations, 407specification concepts, 408–410
Service element endpoint (SEI), 315, 316–318
Service elements, 1392Service endpoint interfaces, 1392Service methods, 448Service-oriented Web applications, 81Services
adding, 407adding to an organization with JAXR, 407finding, 403finding with JAXR, 403
Servlet classes, 13, 18. See also servlets.Servlet containers, 1393Servlet containers, distributed, 1393Servlet context, 1393Servlet interface, 435Servlet mapping, 1393ServletContext interface, 463servletContext object, 492ServletInputStream class, 449ServletOutputStream class, 451ServletRequest interface, 449ServletResponse interface, 451Servlets, 435. See also JSP.
accessing Web context, 463–464adding security to, 1097
J2EETutorial.book Page 1483 Thursday, June 3, 2004 10:26 AM
1484 INDEX
Servlets (Continued)binary data
reading, 449writing, 451
character datareading, 449writing, 451
client stateaccessing sessions, 464associating objects with sessions, 465notifying session objects, 465session management, 466session tracking, 466–467
containers, 10database access, 21, 446–447definition, 1393Duke’s Bank, 1323error handling, 443–444examples, 84, 436–441Filter interface, 454–456filter mappings, 458–460FilterChain interface, 454–456FilterConfig interface, 454–456filtering requests and responses, 454filters, 454–456finalizing, 467–470initializing, 447–453life cycle, 441–444listener class, 442–443long-running methods, shutting down,
470overview, 3, 6, 435–436requests
customizing, 456–458filtering, 454getting information from, 449–450tracking, 468–469
responsescreating, 451–453customizing, 456–458filtering, 454including other resources, 461–462
scope objects, 444–445service methods, 448
notifying, 469programming long running, 470
shared resources, concurrent access, 445–446
sharing information, 444–447shutdown, 469tracking service requests, 468transferring control, 462–463
Session beans, 7, 17, 831See also backing beansSee also enterprise beansSee also entity beansSee also message-driven beansSee also transactions, container-managedaccess control, 844–845activation, 847clients, 831compared to entity beans, 833container-managed relationships, 842creating, 937database access, 17, 21databases, 1052defining client access, 840–845definition, 1393description, 831–838Duke’s Bank, 1303, 1306equality, 891examples, 855, 873, 890, 1222finder methods, 841granularity of data, 844–845home interface, 841home methods, 841instance variables, synchronizing,
1052–1053isolation, 844isolation levels, 1071life cycle, 848–850local clients, 841–842local interfaces, 842messages. See JMS.online banking example, 1303–1306overview, 7, 17, 21packaging, 937passivation, 847
J2EETutorial.book Page 1484 Thursday, June 3, 2004 10:26 AM
INDEX 1485
remote access vs. local, 842–843remote clients, 840–841remote interface, 841requirements, 874stateful, 832stateless, 831, 833transaction types allowed, 1069transactions, 1049, 1051–1052, 1058,
1068–1069, 1073vs. entity beans, 833–834vs. message-driven beans, 838–840Web service clients, 843–844Web service endpoint interface, 844Web services, 844, 885
Session beans, examplesaccessing environment entities, 890–891application exceptions, 901–902comparing enterprise beans, 891enterprise beans
application exceptions, 901–902exception handling, 901–902system exceptions, 901–902
exception handling, 901object references, passing, 891–892shopping cart
building the example, 880business methods, invoking, 877–878business methods, signature, 878enterprise beans, packaging, 881helper classes, 880home interface, 878–879instantiating the beans, 876–877remote interface, 879–880
shopping cart, application clientcreating, 880–881deploying, 883–884enterprise bean reference, specifying,
883packaging, 882running, 884
system exceptions, 901–902timer service
application, creating, 896canceling, 893–894
creating, 893, 895–896enterprise beans, packaging, 897getting information about, 894overview, 892saving, 893–894transactions and, 894
timer service, application clientcompiling, 898deploying, 899–900enterprise bean reference, specifying,
899packaging, 898running, 900–901
Web serviceapplication, creating, 886application, deploying, 888enterprise beans, packaging, 887–888stateless session bean implementation
class, 885Web service client, 888–889Web service endpoint interface,
884–885Session interface, 1165Session management, 1098session object, 492SessionBean interface, 876SessionContext interface, 892Sessions, 464
accessing, 464associating attributes, 465associating objects with, 465associating with user, 466definition, 1393invalidating, 466JMS, 1165–1166managing, 466notifying objects, 465notifying objects associated with, 465tracking, 466–467
Sessions, JMSintroduction, 1165managing in J2EE applications, 1213
sessionScope object, 493set tag, 543–544, 550, 551–552
J2EETutorial.book Page 1485 Thursday, June 3, 2004 10:26 AM
1486 INDEX
setAttribute method, 604setBundle tag, 554–555setCoalescing method, 212setContent method, 356, 359setDataSource tag, 556–558setDocumentLocator, 135, 136–137setDynamicAttribute method, 601setEntityContext method, 848, 926, 928setExpandEntityReferences method,
212setExpandingEntityReferences
method, 212setIgnoringComments method, 212setIgnoringElement method, 212setIgoringElementContentWhitespace
method, 212setLocale tag, 554–555setMessageDrivenContext method, 851,
1215setPostalAddresses method, 416setRollbackOnly method, 1050–1051,
1218setSessionContext method, 847, 892Setters. See access methods.setTimeZone tag, 554Settings, viewing, 972–980SGML (Standard Generalized Markup Lan-
guage), 64, 1393SGML/XML Web page, 40Shared access, enterprise beans, 834Shared objects, JSP pages, 488–489Shared resources, concurrent access,
445–446Sharing information, 444–447Shopping cart example
application, creating, 880–881application client
deploying, 883–884enterprise bean reference, specifying,
883packaging, 882running, 884
building the example, 880business methods, invoking, 877–878
business methods, signature, 878enterprise beans, packaging, 881helper classes, 880home interface, 878–879instantiating the bean, 876–877instantiating the beans, 876–877overview, 873–874remote interface, 879–880session bean class, 874–875SessionBean interface, 876
Shutdown, servlet for, 469Signing digital certificates, 1118–1119Simple API for XML (SAX). See SAX.Simple attributes, 569, 585–586, 586–588Simple custom tags, 568Simple Object Access Protocol (SOAP). See
SOAP.Simple parser, creating, 267Simple tags. See also tag files.
attributesdynamic, 570fragment, 570simple, 569
with bodies, 572examples, 608, 610expression language variables, defining,
572shared objects, 606
example, 607–608named, 606private, 606
specifying body of, 572tag handlers, 598
with attributes, 600with bodies, 602defining scripting variables, 604how invoked, 599supporting dynamic attributes, 601
variables, providing information about, 597, 605–606
SimpleMessageApp. See message-driven beans example.
SimpleTag interface, 598SimpleTagSupport class, 598
J2EETutorial.book Page 1486 Thursday, June 3, 2004 10:26 AM
INDEX 1487
SingleThreadModel interface, 445Slash (/), JSP operator, 494SMIL (Synchronized Multimedia Integra-
tion Language), 1353SOAP (Simple Object Access Protocol),
313–314, 337, 339. See also SAAJ.
body, 351adding content, 348Content-Type header, 359
definition, 1394envelope, 350headers
adding content, 355Content-Id, 359Content-Location, 359Content-Type, 359example, 380
interoperability, 337and JAX-RPC, 19overview, 11
SOAP faults, 366detail, 368Detail object, 368fault actor, 368fault actors, 368fault code, 367fault codes, 367fault string, 368fault strings, 368overview, 366–368retrieving fault information, 369–371,
387–388retrieving information, 369SAAJ example, 387
SOAP messages, 11. See also SAAJ mes-sages.
SOAP with Attachments API for Java. See SAAJ.
SOAP with Attachments API for Java (SAAJ). See SAAJ.
SOAPBody interface, 341, 351SOAPBodyElement interface, 348, 351, 377SOAPConnection class, 344
getting objects, 353
SOAPConnection object, 353SOAPConnection objects, 344–345SOAPElement interface, 349, 378SOAPEnvelope interface, 341, 348, 350SOAPFactory class, 349SOAPFault interface, 367
creating and populating objects, 368detail element, 368fault actor element, 368fault code element, 367fault string element, 368
SOAPFault objectscreating, 368–369definition, 367populating, 368–369
SOAPFaultTest.java, 387–388SOAPHeader interface, 341, 355SOAPHeaderElement interface, 349, 355SOAPMessage class, 341, 347SOAPPart class, 341, 344, 350
adding content, 356SOAPPart object, 353Sorting output, 301SOX (Schema for Object-oriented XML),
1349Special characters
character references, 50hexadecimal to decimal conversion, 50SAX, 147–149treating as text, 51Unicode values, 50
Specification concepts, 408–410publishing with JAXR, 408, 423removing with JAXR, 424
Specifications, 35split function, 561–562Sports team roster example. See CMP
examples.SQL (Structured Query Language), 17, 21,
835, 903, 905–908, 914, 980, 1019, 1028, 1051, 1058, 1394
SQL library, 541–542, 556–560SQL92, 1015, 1038SQL/J, 1394
J2EETutorial.book Page 1487 Thursday, June 3, 2004 10:26 AM
1488 INDEX
Square brackets ([ ])JSP operators, 491–492XPath pattern matching, 250
SSL (Secure Sockets Layer), 1101–1102, 1114, 1133
definition, 1102, 1391, 1394and JAX-RPC, 19–20verifying support, 1122
SSL connectorconfiguring, 1122–1124mutual authentication, enabling,
1123–1124mutual authentication, verifying, 1124running, 1122–1123tips, 1122–1123verifying SSL support, 1122
SSL supportand basic authentication, 1113–1114components of, 1115confidentiality, 1114definition, 1114–1115digital certificates, 1115–1122and form-based authentication,
1113–1114integrity, 1114mutual authentication, enabling,
1123–1124mutual authentication, verifying, 1124overview, 1114–1115passwords, protecting, 1097–1098,
1113–1114running, 1122–1123secure connection, specifying, 1097–1098session management, 1098SSL connector, 1122–1124verifying, 1122
Standalone, 35Stand-alone modules, 13–14Standard converters, 652Converter implementation classes, 706converter tags, 678, 680, 707NumberConverter class, 706three ways to register on a UI component,
706
using, 705-710Standard Generalized Markup Language
(SGML), 64, 1393Standard validators, 654
using, 712-714validator implementation classes. See val-
idator implementation classes.validator tags. See validator tags.
Standards, XML, 74startCDATA method, 165, 169startDocument method, 119, 123start-domain command, 25–27startDTD method, 165, 169startElement method, 119, 124, 126startEntity method, 165, 169starts-with function, 255State
dependent processing, 115, 116independent processing, 115, 116information, getting, 944management modes, 831–832saving and restoring, 785–786specifying save location, 815
Stateful session beansdefinition, 1394life cycle, 847–848overview, 832returning without committing, 1068
StateHolder interface, 646Stateless session beans
definition, 1394implementation class, 885life cycle, 848overview, 831–832
Static content. See also JSP.JSP documents, 527–530JSP pages, 486–487
Static stub clients, 321–324Static stubs, 321StAX (Streaming API for XML), 1345Storing
backing beans, 659instance variables, 907–908
Streaming API for XML (StAX), 1345
J2EETutorial.book Page 1488 Thursday, June 3, 2004 10:26 AM
INDEX 1489
StreamMessage interface, 1171string function, 256String functions, 255, 561–562String values of elements, XPath, 253string-length function, 255String-value, 251, 253Structure elements, XML to HTML,
283–286, 291–296Structure tags, XML to HTML, 280Structured Query Language (SQL), 21, 1394Stubs, 321Stubs, generating. See wscompile tool.Stylability, XML, 37style attribute, 683styleClass attribute, 683Stylesheet, 37Stylesheets. See XML.Subcontexts, JNDI, 1076Subscription names, for durable subscribers,
1200Substitution parameters, defining. See mes-
sages; param tag.substring function, 255, 561–562substringAfter function, 561–562substring-after function, 255substringBefore function, 561–562substring-before function, 255Subtree
concatenation, 219writing, 263
sum function, 256Summarizing entities, 154–155Sun Java System Application Server Plat-
form Edition, 823. See also Appli-cation Server.
sun-moduleType.xml, 13Supports attribute, 1048SVG (Scalable Vector Graphics), 1353SXSLTC, 1400Synchronized Multimedia Integration Lan-
guage (SMIL), 1353Synchronous message consumption, 1161
JMS client example, 1174Synchronous message receives
compiling, 1177in J2EE applications, 1212–1213JMS administered objects, creating,
1178–1180JMS providers, starting, 1177overview, 1174packaging, 1181receiving program, 1176–1177running, 1182–1183sending program, 1174–1176synchronous messaging, 1174writing the programs, 1174–1177
Synchronous messages, 1161System administrators, 1394System exceptions, 901–902SYSTEM keyword, 62–63System.out.println method, 28Systems integration, 22–23
TTable schema, capturing, 959–960Tables, data, 694–696Tag, renderer component combinations,
764–765tag element, 594–595Tag files, 563, 573. See also JSP, tag files.attribute directive, 579bodies, evaluating, 584body-content attribute, 579customizing behavior, 579declaring expression language variable,
579declaring tag attributes, 579directives, 576dynamic attributes, example, 588fragment attributes
evaluating, 584example, 586storing evaluation result, 585
location, 576packaged, 593simple attributes, 585
example, 585
J2EETutorial.book Page 1489 Thursday, June 3, 2004 10:26 AM
1490 INDEX
Tag files (Continued)specifying body content type, 579tag directive, 576, 578unpackaged, 591
implicit TLD, 592variable directive, 579variable synchronization with calling
page, 580, 584variables, example, 586
Tag handlers, 563, 623–625, 753–754, 772–776. See also JSP, tag han-dlers.
classic, 563. See also classic tags, tag handlers.
making available to Web applications, 599simple. See simple tags, tag handlers.
Tag interface, 623Tag libraries. See also JSP, tag libraries;
JSTL.accessing implementation from Web
applications, 505referencing TLD directly, 504referencing TLD indirectly, 504referencing via absolute URI, 505
Tag library descriptor (TLD). See TLD.Tag library descriptors, 576, 589attribute element, 595body-content, 579body-content element, 595, 623filenames, 503listener element, 591mapping name to location, 505tag element, 594
subelements, 594tag-file element, 591taglib, subelements, 589taglib element, 589validator element, 590variable, 597
TagData class, 605TagExtraInfo, 600TagExtraInfo class, 604–606tag-file element, 591taglib directive, 503
Tags, 31, 33See also JSP, custom tagsSee also JSTL tagsSee also scripting, tagsSee also XML tagsclosing, 33content, 296custom, 753–755empty, 33JavaServer Faces, list of, 648–651nesting, 33standard set, 24structure, 296
TagSupport class, 623Target namespace, 242Target server, changing, 1112Taxonomies
finding with JAXR, 406ISO, 3166 400NAICS, 400, 421UNSPSC, 400user-defined, 412using to find organizations, 401
Taxonomies (classifications)adding, 406defining, 412–414finding organizations by, 401–403postal addresses, specifying, 414–416
TDL elements, scripting, 623Team roster example. See CMP examples.TeamBean. See CMP examples.tei-class element, 606TellerBean example. See examples, bean-
managed JTA transactions.Template tag library, 610–613Templates, 249, 283. See also JSP.
definition, 1394mode-based, 301named, 298ordering in a stylesheet, 294overview, 18in style sheets, 294transforming XML to HTML, 294XPath, 249
J2EETutorial.book Page 1490 Thursday, June 3, 2004 10:26 AM
INDEX 1491
Temporary JMS destinations, 1199examples, 1233, 1248
terminate clause, 286Test document, creating, 281Text, 222, 230, 233
displaying in a JTree, 222DTD definitions, 54fields, user interface, 639, 690–694labels, 690–694node, 248nodes, 175, 230–231transforming XML to HTML, 280
text method, 178Text nodes, 206Text-based documents, 6, 18. See also JSP.TextMessage interface, 1171Thick clients, 5Thin clients, 4–5Thread management, 1360Three-tiered applications, 2–3. See also
applications.Tiered applications, 2–3. See also applica-
tions.Ties, generating. See wscompile tool.Time conversion, 707–709Time tags, 556TimedObject interface, 892Timeouts, 1070Timeouts, transactions, 1070Timer interface, 892Timer service, 892
cancelling timers, 893creating timers, 893examples, 895exceptions, 894getting information, 894saving timers, 893transactions, 894
Timer service exampleapplication, creating, 896application client
compiling, 898deploying, 899–900enterprise bean reference, specifying,
899
packaging, 898running, 900–901
canceling, 893–894creating, 893, 895–896enterprise beans, packaging, 897getting information about, 894overview, 892saving, 893–894transactions and, 894
TimerHandle interface, 892TimerService interface, 892Timestamps for messages, JMSTimestamp
message header field, 1170timeZone tag, 554, 556<TITLE> element, 284TLD (tag library descriptor)attribute element, 595–596body-content element, 595custom UI components, 777event listeners, 591listener element, 591overview, 589packaged tag files, 591–593subelements, 590tag element, 594–595tag files, declaring, 591–593tag handlers, declaring, 594–595tag handlers, declaring attributes for,
595–596tag handlers, declaring variables for,
596–598tag-file element, 591top-level elements, 590–591unpackaged tag files, 591–593validating JSP pages, 590validator element, 590–591variable element, 596–598
TLS (Transport Layer Security), 19–20toLowerCase function, 561–562Tool provider role, 14Tool providers, 1395Tool vendors, 635Topic. See publish/subscribe messaging sys-
tem.Topic interface, 1164
J2EETutorial.book Page 1491 Thursday, June 3, 2004 10:26 AM
1492 INDEX
Topicscreating, 1164, 1178durable subscriptions, 1200introduction, 1164looking up, 1164temporary, 1199, 1248
toUpperCase function, 561–562&trade, trademark entity, 61Trademark entity, &trade, 61Transaction attributes, 1395Transaction inflow, 1362Transaction isolation level, 1395Transaction management contract, 1361Transaction managers, 8–9, 1395. See also
containers.transaction tag, 557–558Transactions, 1045, 1058
attributes, 997, 1046attributes, setting, 968auto commits, 18bean-managed, 1046, 1057, 1069–1070,
1073, 1217boundaries, 834, 1046, 1057, 1073business methods. See business methods,
transactions.commits, 1046, 1052, 1058, 1063,
1068–1071container-managed, 1046, 1057,
1068–1070, 1217defined, 1045definition, 1045–1046, 1395demarcating, 1046, 1073distributed, 1216–1219distributed, JMS, 1216entity beans. See entity beans, transac-
tions.examples, 1051–1052, 1058, 1063, 1071,
1206exceptions. See exceptions; transactions.interface for demarcating, 18invoking in Web components, 447isolation levels, 1070JDBC, 1058, 1069, 1071JMS and J2EE applications, 1213
JTA, 1058, 1063, 1069–1070local, JMS, 1204managers, 1049, 1058, 1063, 1071message-driven beans, 839, 1046, 1049,
1057–1058, 1069multiple databases, 1071–1072nested, 1046, 1063options, summary table, 1069overview, 8–9, 18, 1045–1046, 1213Required attribute, 1218rollbacks, 18, 1046, 1050, 1052, 1058,
1063, 1069–1070scope, 1046session beans. See session beans, transac-
tions.shared data, 834timeouts, 1070timer service, 894and timers, 894tips, 1069types allowed, 1069Web components, 1073in Web components, 1073XA, 1361
Transactions, bean-managedabout, 1057–1058Connection interface methods,
1058–1059, 1069, 1073definition, 1367distributed transactions, 1217example, JDBC transactions
application client, packaging, 1061application client, running, 1062–1063application client, specifying enterprise
bean reference, 1062compiling, 1059deploying, 1059enterprise bean, packaging, 1060–1061J2EE application, creating, 1060J2EE application, deploying, 1062packaging, 1059running, 1059
example, JTA transactionsapplication client, packaging, 1066
J2EETutorial.book Page 1492 Thursday, June 3, 2004 10:26 AM
INDEX 1493
application client, running, 1068application client, specifying enterprise
bean reference, 1067compiling, 1064deploying, 1064enterprise bean, packaging, 1065–1066J2EE application, creating, 1065J2EE application, deploying,
1067–1068packaging, 1065running, 1064
isolation levels, 1070–1071JDBC transactions, choosing, 1058–1059,
1069JTA transactions, choosing, 1063–1064,
1069overview, 1057–1058prohibited methods, 1068returning without committing, 1068stateful session beans, returning without
committing, 1068timeouts, 1070UserTransaction interface methods,
1063–1064, 1069, 1073Transactions, container-managed
about, 1046afterBegin method, 1052afterCompletion method, 1052–1053attributes, definition, 1046–1047attributes, list of, 1050attributes, setting, 1049–1050definition, 1369distributed transactions, 1217example
application client, packaging, 1055application client, running, 1056application client, specifying enterprise
bean reference, 1055–1056compiling, 1053enterprise bean, packaging, 1054J2EE application, creating, 1053J2EE application, deploying, 1056packaging, 1053–1055
instance variables, synchronizing, 1052–1053
isolation levels, 1070–1071limitations, 1057Mandatory attribute, 1048Never attribute, 1049NotSupported attribute, 1048prohibited methods, 1057Required attribute, 1047RequiresNew attribute, 1047–1048rollbacks, 1050–1051scope, 1046–1047, 1050setRollbackOnly method, 1050–1051Supports attribute, 1048timeouts, 1070
Transferring control, 462–463, 507–508transform tag, 550, 553–554Transformation tags, 553–554Transformations
from the command line, 303concatenating, 303
Transformations, concatenating, 303–310Transformer, creating, 259Transforming data
DOM (Document Object Model), 247XML to/from other forms. See XPath;
XSLT.translate function, 255Translation, JSP pages, 483–484Transport Layer Security (TLS), 19–20Transport protocols, 10–12. See also Web
services.Transport-level security
basic authentication, 1126–1133client-certificate authentication,
1133–1142mutual authentication, 1133–1142overview, 1125–1126
Traversing DOM nodes, 234Tree, displaying, 205Tree (graph) of beans, 799–801TreeModel, adapting to JTree, 195–204TreeModelSupport class, 204trim function, 561–562true function, 256Trust-stores, 1117, 1135
J2EETutorial.book Page 1493 Thursday, June 3, 2004 10:26 AM
1494 INDEX
Tutorials. See bookstore example; SAAJ messages, tutorial.
Two-way authentication. See mutual authen-tication.
Typographical conventions, xliii
U<U> (underline) tag, 280UBL (Universal Business Language), 1354UDDI (Universal Description, Discovery,
and Integration). See also JAXR.accessing registries with SAAJ, 373definition, 1395getting access to public registries, 394pinging, 373–380registries, 390–391uses for, 12
UI component behavioral interfaces, 646ActionSource interface, 646, 652, 657,
719, 721, 747, 778, 790ConvertibleValueHolder interface,
646, 778EditableValueHolder interface, 646,
778NamingContainer interface, 646, 778StateHolder interface, 646, 779, 785ValueHolder interface, 646, 779
UI component classes, 645-647, 762javax.faces.component package, 778SelectItem class, 700, 703, 736–737SelectItemGroup class, 737SelectItems class, 683UIColumn class, 645UICommand class, 645, 647UIComponent class, 645, 647UIComponentBase class, 645, 778, 780UIData class, 645UIForm class, 645UIGraphic class, 645UIInput class, 645, 653, 657UIMessage class, 646UIMessages class, 646UIOutput class, 646, 652
UIPanel class, 646UIParameter class, 646UISelectBoolean class, 646, 697UISelectItem class, 646, 700UISelectItems class, 646, 700UISelectMany class, 646, 697UISelectOne class, 646–647, 699UIViewRoot class, 646, 676
UI component properties. See backing bean properties.
UI component renderersGrid renderer, 695Group renderer, 695Hidden renderer, 691Label renderer, 691Link renderer, 691Message renderer, 691Secret renderer, 691Table renderer, 686Text renderer, 690–691TextArea renderer, 691
UI component tag attributes, 681-683, 681–683
action attribute, 657, 755, 768, 775actionListener attribute, 657, 685,
711, 719–721, 749, 757, 763, 768, 775, 789
alt attribute, 690, 768for attribute, 692, 699attributes referencing backing bean meth-
ods. See attributes referencing backing bean methods.
basename attribute, 704binding attribute, 642, 658, 681, 683,
714, 718columns attribute, 695–696converter attribute, 690, 706–707,
723–724first attribute, 689headerClass attribute, 695id attribute, 681immediate attribute, 681, 681-682, 768itemLabel attribute, 703itemValue attribute, 703
J2EETutorial.book Page 1494 Thursday, June 3, 2004 10:26 AM
INDEX 1495
locale attribute, 677redisplay attribute, 694rendered attribute, 681–682, 719required attribute, 713rows attribute, 689size attribute, 697, 699style attribute, 681, 683, 689, 699styleClass attribute, 681, 683url attribute, 690usemap attribute, 690, 726validator attribute, 657, 691, 758value attribute, 639, 642, 681, 683, 685,
688-689, 692–693, 698, 702, 714–716, 730, 768–769
valueChangeListener attribute, 657, 691, 711, 722-723, 758
var attribute, 688, 705UI component tags, 648-651, 653, 681, 730
attributes. See UI component tag attributes.
column tag, 648, 684commandButton tag, 639, 648, 685commandLink tag, 648, 686, 712dataTable tag, 648, 686-689, 732form tag, 649, 683graphicImage tag, 649, 768inputHidden, 691inputHidden tag, 649inputSecret tag, 649, 691, 694inputText tag, 639, 649, 690–691inputTextarea, 691inputTextarea tag, 649message tag, 649, 698messages tag, 640, 649, 698outputFormat tag, 686, 693outputLabel tag, 649, 691–692outputLink tag, 649, 691–692outputMessage tag, 691outputText tag, 650, 691–692, 733panelGrid tag, 650, 695panelGroup tag, 650, 688, 694–696selectBooleanCheckbox tag, 650, 697,
734selectItems tag, 737
selectManyCheckbox tag, 650, 697–698, 734
selectManyListbox tag, 650, 697selectManyMenu tag, 650selectOneListbox tag, 651, 699selectOneMenu tag, 651, 699-700,
735–736selectOneRadio tag, 651, 699
UI componentsbuttons, 648checkboxes, 650combo boxes, 650–651custom UI components. See custom UI
components.data grids, 648hidden fields, 649hyperlinks, 648labels, 649–650list boxes, 650–651password fields, 649radio buttons, 651table columns, 648tables, 650text areas, 649text fields, 649
UIColumn class, 645UIColumn component, 684UICommand class, 645, 648UICommand component, 684–686UIData class, 645UIData component, 686–689UIData property, 732–733UIForm class, 645UIForm component, 683–684UIGraphic class, 645UIGraphic component, 690UIInput class, 645UIInput component, 690–694UIInput property, 731–732UIMessage class, 646UIMessage component, 698–699UIMessages class, 646UIMessages component, 698–699UIOutput class, 646
J2EETutorial.book Page 1495 Thursday, June 3, 2004 10:26 AM
1496 INDEX
UIOutput component, 690–694UIOutput property, 731–732UIPanel class, 646UIPanel component, 694–696UIParameter class, 646UISelectBoolean class, 646UISelectBoolean component, 697UISelectBoolean property, 734UISelectItem class, 646UISelectItem component, 700–703UISelectItem property, 736UISelectItemGroup component, 700–703UISelectItems class, 646UISelectItems component, 700–703UISelectItems property, 737–739UISelectMany class, 646UISelectMany component, 697–698UISelectMany property, 734–735UISelectOne class, 646UISelectOne component, 699–700UISelectOne property, 735–736UIViewRoot class, 646Unauthenticated access, 1088, 1145UnavailableException class, 447Undeploying Web modules, 95Underscore (_)
Java localization classes, 819in XML markup, 43
Unicode, 1395Unicode values for special characters, 50Unidirectional relationships, 837–838, 987Uniform resource identifier (URI), 1094,
1396Uniform resource locator (URL). See URL.Uniform resource name (URN), 1396Universal Business Language (UBL), 1354Universal Description, Discovery, and Inte-
gration (UDDI). See UDDI.Universal Standard Products and Services
Classification (UNSPSC), 400, 1395
Unpackaged tag files, 591–593Unparsed entities
definition, 63, 1396
recognizing, 109referencing, 64–66
Unparsed entity, 63, 155unparsedEntityDecl method, 172Unrestricted access, 1094unsetEntityContext method, 850UNSPSC (Universal Standard Products and
Services Classification), 400, 1395
Update model values phase, 667–668update tag, 557–558Updating Web modules, 92–95URI (uniform resource identifier), 1094,
1396URL (uniform resource locator)
connections from enterprise beans, 1083–1086
definition, 1396mapping to Web components, 96–97path, 1396resource manager, 1076
URL connections, 1083url tag, 544URL tags, 548–549URLs, connecting to from J2EE compo-
nents, 1083URN (uniform resource name), 1396US-ASCII encoding, 1341User authentication. See authentication.User data constraints, 1396User input
buttons, 685forms, 683–684hiding, 694requiring values, 712–714selecting from a list
checkboxes, 697–698, 703–704combo boxes, 699–700, 703–704component properties, 734–739drop-down lists, 699–700, 703–704list boxes, 697–698, 703–704menus, 697–698, 699–700, 703–704
text fields, 690–694validation, 714
J2EETutorial.book Page 1496 Thursday, June 3, 2004 10:26 AM
INDEX 1497
User interface, online banking examplecreating, 1313getting data from, 1315–1317updating, 1313
User interface component model. See also JavaServer Faces.
action events, 652behavioral interfaces, 646–647classes, 645–646component rendering model, 647–651conversion model, description, 651–652custom components. See JavaServer
Faces, custom UI components.data validation, 654data-model events, 653event and listener model, description,
652–653mapping classes to tags, 647–651overview, 644–645render kit, 647tags, list of, 648–651UICommand class, definition, 645UICommand class, tags, 648validation model, 654value-change events, 653
User interface components. See JavaServer Faces.
User output, 690–694User-based authorization, 22. See also
JAAS.Username, 1127Users, 1088
adding to Application Server, 1089authorized, 8–9. See also containers;
security.definition, 1088determining name, 1098determining role, 1098J2EE versus operating system, 1088managing, 1089overview, 1088–1089roles, mapping, 1090–1092security, 1397
UserTransaction, 1057, 1063,
1068–1070, 1073UserTransaction interface, message-
driven beans, 1217UserTransaction interface methods,
1063–1064, 1069, 1073UTF-8 encoding, 825, 1341UTF-16 encoding, 1342Utility classes, 845, 904
VValid, 1397Valid partial requests, 97–98validate method, 600validateLongRange tag, 640, 714Validating. See also verifying.
DOMconfiguring the DocumentBuilder fac-
tory, 238errors, 187–188with multiple namespaces, 239–240overview, 237schemas, associating with documents,
238–239schemas, declaring, 241–243with XML schema, 237–243
JSP pages, 590user input data
data ranges, 640, 714required input, 713validation model, 654
XML files, 816with XML Schema, 237
Validating input. See validation model.Validating parsers. See also parsers.
definition, 1397SAX
documents, associating with schemas, 158–159
error handling, 161error handling, setting up, 158factory, configuring, 155–156overview, 155parser properties, setting, 157
J2EETutorial.book Page 1497 Thursday, June 3, 2004 10:26 AM
1498 INDEX
Validating parsers (Continued)validation errors, 159–161XML schema, validating, 156–157
Validationbacking bean methods, 757–758immediate processing, 681–682methods, 722model, 654user input, 714
Validation errors, 159Validation model, 645, 654id attribute, 725referencing a method that performs vali-
dation, 722requiring a value. See also UI component
tag attributes.required attribute, 713
validator attribute, 657, 691, 719–720, 722, 758
Validator class, 754–755Validator implementation, 654, 725Validator interface, 654, 713, 751, 753,
757–758validator tag, 723, 725validators. See validators.writing a backing bean method to perform
validation, 757validator attribute, 691validator element, 590–591Validator implementation classes, 654,
712–713DoubleRangeValidator class, 679, 712LengthValidator class, 679, 712LongRangeValidation implementation,
640LongRangeValidator class, 679, 712,
714Validator interface, 750–753Validator tags, 654, 679–680maximum attribute, 714minimum, 714validateDoubleRange tag, 712validateLength, 712validateLongRange tag, 640, 712, 714
validator tag, 654, 753Validators, 632, 634, 645, 664–665,
712–714, 725–726, 750–753custom validators, 654, 679, 725standard validators. See standard valida-
tors.value attribute, 683Value binding, 714, 730, 730-739
acceptable types of component values, 731
advantages of, 658a component instance to a bean property.
See component binding.a component value to a backing-bean
property, 715a component value to an implicit object,
717component values and instances to exter-
nal data sources, 714value attribute, 639, 642, 683, 685,
688–689, 692–693, 698, 702, 714–716, 730, 768–769
ValueBinding class, 659, 775, 784value-binding enabling component
attributes, 775value-binding expressions, 657, 715, 718,
732, 775Value types, 325Value types, JAX-RPC, 325Value-binding backing beans, 657Value-binding expressions, 1397Value-change events, 652–653, 711, 747processValueChange(ValueChan-
geEvent) method, 748, 759processValueChangeEvent(Val-
ueChangeEvent) method, 759referencing methods that handle value-
change events, 657, 722type attribute, 711ValueChangeEvent class, 657, 711,
747–748, 758valueChangeListener attribute, 657,
691, 711, 719–720, 722, 758valuechangeListener attribute, 763
J2EETutorial.book Page 1498 Thursday, June 3, 2004 10:26 AM
INDEX 1499
ValueChangeListener class, 711, 747, 759
ValueChangeListener implementation, 748
valueChangeListener tag, 678, 710–711, 763
writing a backing bean method to handle value-change events, 758
ValueChangeEvent, 748, 758–759ValueChangeEvent methods, 722–723ValueChangeListener, registering, 711valueChangeListener attribute, 691ValueChangeListener class, 748–749ValueHolder interface, 646variable directive, 580–581variable element, 596–598Variable support tags, 543–544Variable synchronization, 580–584Variables, 301
JSP custom tags, 572–573JSP pages, 491–492scope, 302scripting, 620–621, 629–630value, 302XSLT, 302
--verbose flag, 25verifier tool, 26Verifying. See also validating.
mutual authentication, 1124SSL support, 1122
Version, 35Vertical line (|)
in DTDs, 54XPath operator, 253
Vertical lines (||), JSP operator, 494View phase, 665–666Views, JavaServer Faces technology, 662Virtual hosts, 1397
WW3C(World WideWebConsortium), 19, 314,
337, 1349, 1397.war file extension, 13
WAR (Web application archive) files, 811See also Web applicationsSee also Web-tier securitySee also wsdeploy tooladding files to, 871adding Web component files, 865definition, 1397deploying Web modules, 87directory structure, 811–812JavaBeans components in, 86overview, 13
WarehouseBean example. See examples, bean-managed JDBC transactions.
Warnings, 146. See also errors.definition, 1397in DTD, 163SAX, 146–147XML, 48
Web applications, 86See also bookstore exampleSee also Coffee Break exampleSee also JavaServer FacesSee also online banking exampleaccessing data sources, 101accessing databases from, 100accessing tag library implementations,
505configuring, 83, 95–96databases
accessing, 100–104connection, creating, 103–104data sources, creating, 102–103data sources, mapping to resource ref-
erences, 104DataSource objects, 101populating, 101–102resource references, mapping to data
sources, 104resource references, specifying,
103–104definition, 1397deployment descriptors, 13, 87distributable, 1398errors, mapping to error screens, 99
J2EETutorial.book Page 1499 Thursday, June 3, 2004 10:26 AM
1500 INDEX
Web applications (Continued)establishing the locale, 821initialization parameters, setting, 98–99internationalizing, 819
J2EE Blueprints, 827JSP pages, 82life cycle, 84–86localization
character encoding, 824–825character sets, 824date formats, 823Java localization classes, 819–820labels, 820–823locale, establishing, 821messages, 820–823number formats, 823page encoding, 826request encoding, 825–826resource bundle, setting, 822response encoding, 826–827retrieving localized messages, 822–823UTF-8 encoding, 825
maintaining state across requests, 464making tag handlers available to, 599mapping resource references to data
sources, 104mapping URLs to Web components,
96–97overview, 82–84parsing and formatting localized dates and
numbers, 823presentation-oriented, 81providing localized messages, 820resource references, declaring, 99–100retrieving localized messages, 822running, 91security. See Web-tier security.service oriented, 81service-oriented, 81servlets, 82setting the resource bundle, 821specifying initialization parameters, 98specifying resource references, 103specifying welcome files, 97
user interface framework, 24–25valid partial requests, 97–98welcome files, declaring, 97–98
Web browsers, 4. See also Web clients.Web clients, 4, 81
coding, 863–864compiling, 865context root, specifying, 868creating, 863–868Duke’s Bank, 1318, 1328
custom tags, 1320JavaBeans components, 1319JSP template, 1320request processing, 1323running, 1339
enterprise bean reference, mapping, 867enterprise bean reference, specifying, 866examples, 863online banking example
client components, 1320–1323compiling, 1330design strategies, 1319–1320overview, 1318–1319packaging, 1333–1334protecting resources, 1325–1326request processing, 1323–1325running, 1339
overview, 4packaging, 865running, 869–870
Web component developer role, 15Web components, 6. See also J2EE compo-
nents; JSP; servlets.accessing databases from, 446aliases, setting, 96–97applets bundled with, 6concurrent access to shared resources, 445declaring environment entries, 99–100declaring resource references, 99–100definition, 1398encoding of requests delivered to, 825enterprise bean references, 866forwarding to other Web components, 462including other Web resources, 461
J2EETutorial.book Page 1500 Thursday, June 3, 2004 10:26 AM
INDEX 1501
invoking other Web resources, 460JMS and, 1219logging messages, 28mapping exceptions to error screens, 99mapping filters to, 458mapping to URLs, 96–97overview, 3, 6packaging, 865propagating security identity, 1149–1151response encoding, 826scope objects, 444Server Log, overview, 28ServletContext.log method, 28setting the request encoding, 825setting the response encoding, 826sharing information, 444specifying aliases, 96specifying initialization parameters, 99transactions, 447, 1073types, 6uses for, 81utility classes bundled with, 6Web context, 463
Web container providers, 1398Web containers, 10
definition, 83, 1398distributed, 1398loading and initializing servlets, 441mapping URLs to Web components, 96overview, 10
Web content, creating. See JSP.Web context, accessing, 463–464Web deployment descriptors, 13Web modules, 13, 86
context root, setting, 89–92definition, 86, 1398deployed, listing, 92deploying, 89–92
unpackaged, 89, 91–92document root, 86dynamic reloading, 93–95JAR files, 13overview, 13packaging, 88–89
top-level directory, 86undeploying, 95updating, 92–95
packaged, 93unpackaged, 93
viewing deployed, 92WAR files, 87
Web pages. See applets; JSP.Web resource collections, 1094
defining, 1093, 1096definition, 1094, 1398editing content, 1096
Web resources, 86, 1398Duke’s Bank, protecting, 1326mapping filters to, 458–460protecting, 1094unprotected, 1094
Web server providers, 1399Web servers, 1398–1399Web service clients, 843–844Web service endpoint interface, 844,
884–885Web services, 10. See also Coffee Break
example.clients, 326
application, 333–336creating, 314–324DII (dynamic invocation interface),
329–333dynamic proxy, 326–329static stub, 321–324unknown until runtime, 329–333
definition, 1399EJB. See enterprise beans, Web services.endpoint interfaces, 884example, 1255
application, creating, 886application, deploying, 888enterprise beans, packaging, 887–888stateless session bean implementation
class, 885Web service client, 888–889Web service endpoint interface,
884–885
J2EETutorial.book Page 1501 Thursday, June 3, 2004 10:26 AM
1502 INDEX
Web services (Continued)examples, 314overview, 10–12RPC (remote procedure calls) support.
See JAX-RPC.security, 1092
basic authentication, 1126–1133client-certificate authentication,
1133–1142mutual authentication, 1133–1142overview, 1125–1126
WSDL files, 886Web Services Description Language
(WSDL), 12, 317–318. See also XML.
Web services interoperability (WS-I), 337Web tier, 2–6Web-tier security. See also security.
authentication method, setting, 1093, 1095, 1105
deployment descriptorscreating, 1092–1100viewing, 1092
JSP pages, adding security to, 1097network security requirements, 1093,
1096–1097overview, 1092–1093passwords, protecting, 1097–1098programmatic security methods,
1098–1100protecting passwords, 1097–1098protecting Web resources, 1094request URIs, protected, 1094roles
authorizing, 1093, 1097creating, 1097mapping, 1090–1092, 1098–1100references, declaring, 1098–1100references, linking, 1098–1100
secure connection, specifying, 1097–1098security constraints, 1093, 1095security requirements, setting with
deploytool, 1095–1097servlets, adding security to, 1097
session management, 1098SSL support, 1097–1098unrestricted access, allowing, 1094URIs, protected, 1094users
determining name, 1098determining role, 1098
Web resource collections, 1093, 1096Welcome files, declaring, 97–98Well formed
definition, 1399JSP documents, 521, 528tags, 33XML, 33, 45–46
when tag, 544, 546WHERE clause, 1032–1040WhitespaceCDATA sections, 51compressing, 132–133DOM, ignoring, 212DTDs, 52ignorable, 151–152tags, 32tracking, 151–152trimming, 289–291trimming, JSTL, 561–562
Wildcards, XPath, 251–252Windows commands
Application Server, 25, 27PointBase database server, 28
Work flows, 833Work management contract, 1359–1360World Wide Web Consortium (W3C), 19,
1397Writing backing bean methods, 755-759
for handling action events, 757for handling value-change events, 758for performing navigation, 755for performing validation, 757
Writing backing-bean methods, for perform-ing validation, 691
Writing component properties. See backing bean properties.
wscompile, 26
J2EETutorial.book Page 1502 Thursday, June 3, 2004 10:26 AM
INDEX 1503
wscompile tool, 26, 315wsdeploy, 26wsdeploy tool, 26WSDL (Web Services Definition Language),
12, 314, 324, 327, 337publishing concepts for with JAXR, 423publishing with JAXR, 408removing concepts for with JAXR, 424using to find organizations, 401, 424
WSDL (Web Services Description Lan-guage), 12, 317–318. See also XML.
WSDL files, 19. See also wscompile tool.WS-I (Web services interoperability), 337
XX.509 certificates, 1102. See also digital cer-
tificates; security.common name field, 1089definition, 1102–1103overview, 1089
Xalan, 245, 306command line transformations, 303creating a transformer, 259–262definition, 1399identity transform, 260name origin, 245reading XML file, 258–259writing a DOM as an XML file, 257–264
XHTML, 44, 1351, 1399XLink, 1350, 1399Xlink, 1350XLL (XML Link Language), 1399XML (Extensible Markup Language), 11,
31, 313, 324. See also DTD.application processing instructions,
35–36, 46–47archiving components, 40–41attributes, 3, 33binding, 40case sensitivity, 43CDATA sections, 51–52comments, 34, 42
content, 35converting existing data to. See SAX.creating XML files, 41–42data
generating, 41–42identification, 36–37processing with Java. See JAXP.
for data processing, 39data structure design
attributes vs. elements, 75–76conditionalized DTDs, 78containers vs. contents, 76data visibility, 76factoring out DTDs, 78modularizing DTDs, 78normalizing data, 77–78normalizing DTDs, 78online resources, 74stylistic choices, 76–77using existing schemas, 74
declarations, writing, 42definition, 31–32, 1399–1400designing a data structure, 74in document-driven programming, 39–40documents, 57, 135documents, and SAAJ, 340ease of processing, 38editors, 40elements
adding attributes, 43definition, 1373nesting, 44root, defining, 42–43special values, 55vs. attributes, 75–76
elements in SOAP messages, 340entities
defining, 35, 49list of, 49predefined, 49in XML documents, 50–51
error handling, 48errors, definition, 48fatal errors, 48
J2EETutorial.book Page 1503 Thursday, June 3, 2004 10:26 AM
1504 INDEX
XML (Continued)generating, 264hierarchical nature, 38importance of, 36–38inline reusability, 37and JAXP, 19linkability, 38linking, 1350markup, 31online resources, 40overview, 11plain text format, 36processing instructions, 35–36, 46–47prolog, 34prologs, 34–35reading, 258registries, establishing security creden-
tials, 404reserved words, 36schema standards, 1349special characters
character references, 50hexadecimal to decimal conversion, 50symbols for. See entities.treating as text, 51Unicode values, 50
stylability, 37syntax, 31–32tags. See also JSP, tag libraries; JSTL.
attributes, 33empty, 33–34HTML-style, 44–45markup, 31nesting, 33, 46specifying for a document. See DTD.structure, transforming to HTML, 280well formed, 33whitespace, 32
technical committees, 74transforming to other forms. See XPath;
XSLT.treating as text, 148–149. See also CDATA
sections; lexical events.uses for, 38–41
warnings, 48well formedness, 33, 45–46whitespace inCDATA sections, 51DTDs, 52tags, 32
XML Base, 1350XML data, 57, 135
transforming with XSLT, 278XML declaration, 531–533XML documents. See also DTD; JSP, docu-
ments.accessing. See DOM; SAX.associating with schemas, 158–159CDATA sections, 51–52comments, 34, 42data, generating, 41–42data identification, 36–37declarations, writing, 42document type, specifying, 56elements
adding attributes, 43nesting, 44root, defining, 42–43
entitiesdefining, 35, 49list of, 49predefined, 49in XML documents, 50–51
identifying as documents, 42JSP documents, 515locating, 136–137prologs, 34–35special characters
character references, 50hexadecimal to decimal conversion, 50symbols for. See entities.treating as text, 51Unicode values, 50
vs. XML data, 57well formedness, 33, 45–46
.xml file extension, 12XML files
creating, 41–42
J2EETutorial.book Page 1504 Thursday, June 3, 2004 10:26 AM
INDEX 1505
echoingapplication skeleton, 118classes, importing, 118ContentHandler, 119–120I/O, setting up, 119overview, 117parser, setting up, 120–121
echoing, event handlingcharacter events, 125–127document events, 123–124element events, 124–125
echoing, outputspacing, 122–123writing, 121–122
event handlingcharacter events, 125–127document events, 123–124element events, 124–125
validation, enabling, 816XML library, 541–542, 550–554XML Link Language (XLL), 1399XML namespaces, 523XML registries
accessing, 394–395. See also JAXR.authentication, 404classifications, 406data management, 404–411ebXML Registry and Repository stan-
dard, 390objects, listing, 424–425organizations, creating, 404–406querying, 399–400registry providers, 390removing data, 411specifications, 390UDDI (Universal Description, Discovery,
and Integration), 390XML registries (classifications), 406XML Schema, 156–157, 1400. See also
schemas; validating.definition, 156Instance, 158reason for using DOM, 176, 181SAX error handling, 158
SAX parser properties, 157summary of, 1349validating, 237
with multiple namespaces, 239validating with, in SAX, 156
XML security. See also security.basic authentication example, 1126–1133client-certificate authentication example,
1133–1142mutual authentication example,
1133–1142overview, 1125–1126
XML standardscxml (Commerce XML), 1354DOM (Document Object Model), 1345dom4j, 1345–1346DrawML (Drawing Meta Language),
1353DTD (document type definition), 1346ebXML (Electronic Business with XML),
1354e-commerce, 1353–1354extended document, 1353ICE (Information and Content Exchange),
1354JDOM, 1345–1346knowledge representation, 1351–1352linking, 1350–1351MathML (Mathematical Markup Lan-
guage), 1353namespaces, 1347presentation, 1350–1351RDF (Resource Description Framework),
1351–1352RDF Schema, 1352RELAX NG, 1349SAX (Simple API for XML), 1344–1345schemas, 1348–1349, 1352Schematron, 1350SMIL (Synchronized Multimedia Integra-
tion Language), 1353SOX (Schema for Object-oriented XML),
1349StAX (Streaming API for XML), 1345
J2EETutorial.book Page 1505 Thursday, June 3, 2004 10:26 AM
1506 INDEX
XML standards (Continued)SVG (Scalable Vector Graphics), 1353UBL (Universal Business Language),
1354Web site, 74XHTML, 1351Xlink, 1350XML (Extensible Markup Language),
1349XML Base, 1350+XPath, 1347XPointer, 1350–1351XSL (Extensible Stylesheet Language),
1347XSLT (Extensible Stylesheet Language
Transformations), 1347XTM (XML topic maps), 1352
XML tags. See also JSP, custom tags; JSTL tags; scripting, tags.
attributes, 33blanks. See whitespace.definition, 1394empty, 33–34HTML-style, 44–45markup, 31nesting, 33, 46text appearance, transforming to HTML,
280well formed, 33whitespace, 32
XML topic maps (XTM), 1352XML-based data interchange. See JAXP;
JAX-RPC; SAAJ.XML-based remote procedure calls (RPCs),
19–20. See also JAX-RPC.XML-based standards, 12
See also ebXMLSee also UDDISee also Web servicesSee also WSDL
XmlReader interface, 274XPATH, 1347XPath, 245–247
addressing, 249–250, 251, 252
basic addressing, 249basic expressions, 250Boolean functions, 256contexts, 249conversion functions, 256data model, 248data types, 252–253definition, 246expression, 247expressions, 247–248, 250–251functions, 253–257namespace functions, 257node-set functions, 254numeric functions, 256operator precedence, 252operators, 252–253positional functions, 254string functions, 255string values of elements, 253templates, 249wildcards, 251–252
+XPath, 1347XPointer, 247, 1350–1351, 1400XSL (Extensible Stylesheet Language),
1347, 1400XSL-FO, 246, 1400XSLT (Extensible Stylesheet Language
Transformations), 245–246, 278, 1347, 1400
concatenating transformations, filter chain, 303
context, 249data model, 248definition, 1400features, 301–302filter chains, 303–310Formatting Objects standard, 246JAXP transformation packages, 246–247library, 106overview, 19, 111–112packages, 112–113reading XML file, 258–259running from the command line, 303templates, 249
J2EETutorial.book Page 1506 Thursday, June 3, 2004 10:26 AM
INDEX 1507
transform, writing, 282transformations, concatenating, 303–310transforming to XML
from arbitrary data, 264–278creating a transformer, 259–262from a DOM, 257–264DOM I/O, 247identity transform, 260sample output, 278SAX I/O, 247stream I/O, 247
transforming to XML, parsercreating, 267–269generating SAX events, 269–275modifying, 269–275as a SAXSource, 275–277
transforming XML to HTMLcomments, 295creating a test document, 281–282defining the document type, 279–280generating runtime messages, 286
headings, 285indent options, 290–291inline (content) elements, 296–302inline tags, 280line breaks, 280lists and list items, 293paragraphs, 292printing the HTML, 300required tags, 279–280structure elements, 283–286, 291–296structure tags, 280templates in style sheets, 294text appearance tags, 280trimming whitespace, 289–291writing an XSLT transform, 282–283writing the program, 287–288
variables, 302XML standard, 1347XSL-FO, 246
XTM (XML topic maps), 1352
J2EETutorial.book Page 1507 Thursday, June 3, 2004 10:26 AM