What is included with this book?
Foreword | p. xxiii |
Introduction to the JWSDP | p. 1 |
Introduction | p. 2 |
JWSDP History | p. 3 |
JAXP | p. 3 |
JAXM | p. 4 |
JAX-RPC | p. 5 |
JAXR | p. 6 |
JSSE | p. 6 |
JSTL | p. 7 |
Ant and Tomcat | p. 7 |
Summary | p. 9 |
Solutions Fast Track | p. 9 |
Frequently Asked Questions | p. 12 |
Processing XML Documents with SAX | p. 13 |
Introduction | p. 14 |
Understanding Event-Based XML Parsing | p. 14 |
The SAX Event Model | p. 15 |
Overview of Event Processing | p. 15 |
History of SAX | p. 16 |
Basic SAX Events | p. 17 |
Example Parse Events | p. 18 |
Understanding Event Handlers | p. 18 |
Overview of Handlers | p. 18 |
Basic SAX Callbacks | p. 19 |
Example Event Handler | p. 22 |
Creating a SAX Parser | p. 26 |
SAX Interfaces and SAX Implementations | p. 26 |
JAXP and Underlying SAX Engines | p. 27 |
Introducing the JAXP package | p. 27 |
Using the SAXParserFactory | p. 27 |
Selecting a SAX parser with the plugability interface | p. 28 |
Parsing Data with a SAX Parser | p. 31 |
Input Sources | p. 31 |
InputSource | p. 31 |
An Example Servlet | p. 32 |
Servlets and Multithreading | p. 36 |
Configuring the Parser | p. 38 |
Enabling Validation | p. 39 |
Enabling Namespaces | p. 39 |
Namespaces and Events | p. 40 |
Enabling Other Features | p. 41 |
Features and Properties | p. 42 |
Setting Features | p. 43 |
Setting Properties | p. 43 |
Handling Advanced Events | p. 44 |
ContentHandler | p. 44 |
ErrorHandler | p. 45 |
SAX2 Extensions | p. 47 |
LexicalHandler | p. 47 |
DeclHandler | p. 48 |
Summary | p. 49 |
Solutions Fast Track | p. 50 |
Frequently Asked Questions | p. 51 |
Processing XML Documents with DOM | p. 53 |
Introduction | p. 54 |
The Document Object Model | p. 54 |
The DOM Tree | p. 55 |
The Basic Classes | p. 57 |
Document | p. 58 |
Element | p. 58 |
Text | p. 58 |
Attribute | p. 59 |
Node | p. 59 |
NodeList | p. 59 |
Interrelationships | p. 60 |
Hierarchy imposed by the Document/Element/Attribute/Text classes | p. 60 |
Relationship between Elements in a DOM hierarchy | p. 61 |
JAXP and Underlying DOM Engines | p. 62 |
Creating a DOM Parser | p. 65 |
The DocumentBuilderFactory class | p. 66 |
Obtaining a new instance of the DocumentBuilderFactory | p. 66 |
Using the DocumentBuilderFactory to create a DocumentBuilder | p. 66 |
Setting parser attributes | p. 67 |
Creating a coalescing, validating, namespace aware DOM parser | p. 69 |
Parsing XML into a DOM | p. 73 |
Input source types | p. 73 |
InputSource | p. 74 |
File-based source | p. 74 |
InputStream-based sources | p. 74 |
String | p. 75 |
EntityResolvers | p. 75 |
Manipulating DOM Objects | p. 77 |
Walking a DOM Constellation | p. 77 |
Obtaining the document root | p. 80 |
Walking the hierarchy | p. 80 |
A servlet to write out name/value pairs from example schema | p. 82 |
Finding lists of nodes | p. 89 |
Servlet to write out all node names that contain a specific value | p. 94 |
Changing the contents of a node | p. 96 |
AdditionInXML Servlet to modify nodes in the DOM tree | p. 104 |
Advanced Topics | p. 108 |
Multi-threaded applications | p. 109 |
Safe routines | p. 109 |
Unsafe routines | p. 115 |
Parser Attributes | p. 115 |
Selecting a DOM Parser with the Plugability Interface | p. 117 |
DOM Parser search path | p. 117 |
Error Handling | p. 118 |
Summary | p. 120 |
Solutions Fast Track | p. 120 |
Frequently Asked Questions | p. 121 |
XML Transformations | p. 123 |
Introduction | p. 124 |
Reviewing XSL and XSLT | p. 124 |
XPath and XSLT | p. 128 |
Axes and Locations | p. 129 |
Procedural XSLT | p. 130 |
[left angle bracket]xsl:template[right angle bracket] | p. 130 |
[left angle bracket]xsl:apply-template[right angle bracket] | p. 131 |
[left angle bracket]xsl:for-each[right angle bracket] | p. 132 |
[left angle bracket]xsl:if[right angle bracket] | p. 134 |
[left angle bracket]xsl:choose[right angle bracket], [left angle bracket]xsl:when[right angle bracket], [left angle bracket]xsl:otherwise[right angle bracket] | p. 137 |
[left angle bracket]xsl:sort[right angle bracket] | p. 138 |
[left angle bracket]xsl:value-of[right angle bracket] | p. 138 |
[left angle bracket]xsl:output[right angle bracket] | p. 138 |
JAX-P and Underlying XSL Engines | p. 139 |
Using JAX-P Classes | p. 140 |
Creating a Transformer | p. 140 |
Source and Result | p. 144 |
Transformer | p. 145 |
Templates | p. 149 |
Miscellaneous JAX-P for XSL Issues | p. 152 |
Error Handling | p. 152 |
ErrorListener | p. 152 |
SourceLocator | p. 153 |
URIR esolver | p. 153 |
Thread Safety | p. 154 |
Plugability | p. 155 |
Summary | p. 156 |
Solutions Fast Track | p. 156 |
Frequently Asked Questions | p. 158 |
Using JSTL (JSP Standard Tag Library) | p. 159 |
Introduction | p. 160 |
Expression Languages | p. 160 |
Why Expression Languages? | p. 161 |
Supported Expression Languages | p. 161 |
Simplest Possible Expression Language (SPEL) | p. 161 |
ECMAScript | p. 163 |
JXPath | p. 164 |
Selecting an Expression Language | p. 164 |
Application-Wide | p. 164 |
Code Section Explicit | p. 165 |
Expression Languages and Tag Library Selection | p. 166 |
Future Compatibility with Expression Languages | p. 166 |
Core Tags | p. 167 |
Expression Language | p. 167 |
c:out | p. 169 |
c:set | p. 170 |
Iterations | p. 171 |
c:forEach | p. 171 |
c:forTokens | p. 172 |
Conditional Expressions | p. 173 |
c:if | p. 173 |
c:choose | p. 173 |
c:when | p. 173 |
c:otherwise | p. 174 |
Importing External Resources | p. 174 |
c:import | p. 174 |
:param | p. 175 |
URL Manipulation | p. 175 |
c:urlEncode | p. 175 |
c:redirect | p. 176 |
SQL Query Tags | p. 176 |
Setting up a driver | p. 176 |
sql:driver | p. 177 |
Executing queries | p. 177 |
sql:query | p. 177 |
sql:param | p. 177 |
Executing updates | p. 179 |
sql:update | p. 179 |
Denoting transactional boundaries | p. 180 |
sql:transaction | p. 180 |
Internationalization Tags | p. 182 |
Defining the Locale | p. 183 |
Browser Specified | p. 183 |
JSP Specified | p. 184 |
Defining the Timezone | p. 184 |
fmt:timeZone | p. 184 |
Specifying a Resource Bundle | p. 185 |
fmt:bundle | p. 186 |
Locating the resource bundle | p. 186 |
Using Internationalized Messages | p. 187 |
Obtaining Simple Internationalized Messages | p. 187 |
Performing Parameter Substitution | p. 188 |
Exception Localization | p. 190 |
Parsing and formatting | p. 192 |
fmt:formatNumber | p. 192 |
fmt:parseNumber | p. 194 |
fmt:formatDate | p. 194 |
fmt:parseDate | p. 195 |
XML Support Tags | p. 195 |
Parsing and searching | p. 195 |
x:parse | p. 195 |
x:out | p. 196 |
x:set | p. 196 |
Iteration | p. 196 |
x:forEach | p. 196 |
Flow Control | p. 197 |
x:if | p. 197 |
x:choose | p. 197 |
x:when | p. 197 |
x:otherwise | p. 197 |
Translation and XSLT | p. 198 |
Summary | p. 199 |
Solutions Fast Track | p. 199 |
Frequently Asked Questions | p. 201 |
Writing SOAP Clients | p. 203 |
Introduction | p. 204 |
Understanding SOAP | p. 204 |
Envelopes | p. 205 |
Headers | p. 206 |
Bodies | p. 207 |
Attachments | p. 208 |
SOAPElement and JAXM DOM | p. 209 |
SOAPElement | p. 209 |
Attributes | p. 210 |
Child Elements | p. 210 |
Text Nodes | p. 212 |
Name | p. 213 |
Text | p. 214 |
JAXM SOAP Elements | p. 214 |
SOAPMessage | p. 214 |
MIME encoding | p. 215 |
SOAPPart | p. 217 |
SOAPEnvelope | p. 219 |
SOAPHeader & SOAPHeaderElement | p. 220 |
SOAPBody, SOAPBodyElement and SOAPFault | p. 222 |
Creating a SOAP Message | p. 223 |
MessageFactory | p. 224 |
Creating SOAP Parts, Envelopes, Headers and Bodies | p. 226 |
Adding Attachments to Messages | p. 228 |
Bringing it all Together--A Complete SOAP Client | p. 230 |
Connecting to a SOAP service | p. 230 |
Summary | p. 248 |
Solutions Fast Track | p. 248 |
Frequently Asked Questions | p. 250 |
Writing SOAP Servers | p. 253 |
Introduction | p. 254 |
Message Routing | p. 254 |
Asynchronous messages | p. 255 |
One-Way Messages | p. 256 |
Delayed Response Messages | p. 257 |
State in Asynchronous Servers | p. 258 |
Message Routing | p. 259 |
Incoming Message Routing | p. 260 |
Outgoing Message Routing | p. 262 |
Establishing a Connection to a JAXM Provider | p. 263 |
ProviderConnections | p. 266 |
Using the ProviderConnection to Create a Message | p. 267 |
Using ProviderConnection to Send a Message | p. 267 |
Profiles | p. 269 |
Writing a SOAP Server Servlet | p. 270 |
JAXMServlet | p. 271 |
Required Overrides | p. 273 |
Handling Messages | p. 274 |
Writing a SOAP EJB | p. 275 |
Overriding MessageDrivenBean and OnewayListener | p. 277 |
Example SOAP Servlet | p. 277 |
Receiving and Processing SOAP Messages | p. 278 |
Summary | p. 300 |
Solutions Fast Track | p. 300 |
Frequently Asked Questions | p. 302 |
Using XML-based RPC | p. 303 |
Introduction | p. 304 |
JAX-RPC Summary | p. 304 |
Understanding Stubs and Ties | p. 305 |
Sending a XML-RPC Message | p. 306 |
Mapping Java Data Types | p. 307 |
Supported Java data types | p. 307 |
Data Type to XML/WSDL Definition Tables | p. 308 |
Primitives | p. 308 |
Object Types | p. 308 |
Arrays | p. 309 |
Application Classes | p. 310 |
Arbitrary Java Classes | p. 311 |
Serializers | p. 311 |
Deserializers | p. 312 |
Holder Classes | p. 312 |
Conversion Between Java Classes and WSDL | p. 313 |
WSDL Generator | p. 313 |
Command Line Options | p. 313 |
Tool Configuration File | p. 314 |
Server Configuration File | p. 316 |
Using Classes Generated by the Stub Generator | p. 317 |
Creating a JAX-RPC Client | p. 317 |
Creating a connection to a remote server | p. 318 |
Invoking methods on a remote server | p. 318 |
Creating a JAX-RPC Server | p. 319 |
Creating the Service Definition Interface | p. 319 |
Creating the xrpcc Config File | p. 319 |
Developing the Service Implementation | p. 320 |
Building the Server WAR File | p. 320 |
Creating a Simple XML-RPC Server and Client | p. 321 |
Summary | p. 328 |
Solutions Fast Track | p. 329 |
Frequently Asked Questions | p. 331 |
Locating Web Services | p. 333 |
Introduction | p. 334 |
Registries | p. 334 |
Storage of Metadata about Services | p. 334 |
Categories | p. 335 |
Locations | p. 336 |
Major Registry Standards | p. 336 |
UDDI | p. 337 |
ebXML | p. 339 |
Categorizing Web Services | p. 342 |
Category Hierarchies | p. 342 |
Example Hierarchies | p. 343 |
Organization, User | p. 343 |
Connecting to a Registry | p. 344 |
Using the Default Registry | p. 347 |
Adding an Organization | p. 348 |
Querying the Registry | p. 351 |
Querying the Registry | p. 353 |
Finding a Service Using a Simple Query | p. 353 |
Finding a Service Using a Complex Query | p. 357 |
Understanding the Query Results | p. 363 |
Metadata Returned | p. 363 |
External Data | p. 364 |
WSDL Documents | p. 364 |
Structure of a WSDL Document | p. 365 |
Example WSDL Document | p. 368 |
The [left angle bracket]definitions[right angle bracket] Element | p. 370 |
The [left angle bracket]message[right angle bracket] Element | p. 370 |
The [left angle bracket]portType[right angle bracket] Element | p. 371 |
The [left angle bracket]binding[right angle bracket] Element | p. 371 |
The [left angle bracket]service[right angle bracket] Element | p. 372 |
Storing Information in a Registry | p. 372 |
Adding New Registry Records | p. 372 |
Updating Records | p. 381 |
Deprecating and Deleting Existing Records | p. 386 |
Security Requirements | p. 393 |
Summary | p. 395 |
Solutions Fast Track | p. 395 |
Frequently Asked Questions | p. 398 |
Java Secure Sockets Layer | p. 401 |
Introduction | p. 402 |
Configuring JSSE | p. 402 |
Download JSSE and Extract the Files | p. 403 |
Install the .jar Files | p. 403 |
Register the SunJSSE Provider | p. 403 |
Configure The URL Handler | p. 404 |
Install a JSSE-Specific cacerts file (Optional Configuration Step) | p. 405 |
Introduction to Keys and Certificates | p. 405 |
Using keytool to Create a Keystore | p. 407 |
Creating a keystore | p. 408 |
Using keytool to Create/install a Certificate | p. 409 |
Importing a Certificate | p. 409 |
Generating a self-signed Certificate | p. 410 |
Importing a Certificate From an Identity Database | p. 411 |
Referring to keystores with JSSE properties | p. 411 |
The KeyStore Class | p. 412 |
The Certificate Class | p. 413 |
Using JSSE Properties to Refer to the keystore | p. 414 |
Using HTTPS URL Handlers | p. 416 |
Configuring URL Handler for JSSE | p. 416 |
Creating a HTTPS Connection | p. 418 |
Using the URL Handler | p. 418 |
Using SocketFactories | p. 420 |
Creating Sockets and ServerSockets (by hand) | p. 420 |
The ServerSocket Class | p. 420 |
The Socket Class | p. 421 |
Using SocketFactories and ServerSocketFactories | p. 421 |
The SocketFactory Class | p. 421 |
The ServerSocketFactory Class | p. 422 |
Advantages of SocketFactories | p. 422 |
Determining Default and Installed Cipher Suites | p. 422 |
Determining the Installed Cipher Suites | p. 423 |
Using Secure Server Sockets | p. 424 |
Getting the Secure Socket Factory | p. 425 |
Registering a Secure Server Socket | p. 426 |
Accepting Connections | p. 426 |
Reading Data | p. 426 |
Writing Data | p. 427 |
Closing Connections | p. 427 |
Using Secure Client Sockets | p. 429 |
Connecting to a Remote Secure Server | p. 430 |
Writing Data | p. 430 |
Reading Data | p. 431 |
Closing the Connection | p. 431 |
Using JSSE Applications with WSDP | p. 437 |
Using the URLHandler in a Web Service | p. 440 |
Client-Server Web Service | p. 443 |
Summary | p. 448 |
Solutions Fast Track | p. 448 |
Frequently Asked Questions | p. 450 |
Using JWSDP Tools | p. 453 |
Introduction | p. 454 |
JWSDP UDDI Registry | p. 454 |
Installing | p. 455 |
Microsoft Windows Installation Instructions | p. 455 |
Unix, Linux Installation Instructions | p. 455 |
Configuring | p. 460 |
Activating | p. 460 |
Limitations | p. 461 |
Selecting as the Registry | p. 462 |
Organization | p. 464 |
Primary Contact Information | p. 464 |
Classifications | p. 465 |
Tomcat | p. 467 |
Installing | p. 467 |
Windows | p. 467 |
Linux | p. 467 |
Environmental Variables | p. 468 |
Configuring | p. 468 |
Server.xml | p. 468 |
The webapps Directory and WAR files | p. 469 |
Activating | p. 471 |
Starting Tomcat under Windows NT Manually | p. 471 |
Starting Tomcat under Windows NT as a Service | p. 471 |
Starting Tomcat under Linux Manually | p. 471 |
Starting Tomcat under Linux at Startup Time | p. 472 |
Relationship to Apache Servers | p. 472 |
Acting Standalone | p. 472 |
Proxied behind Apache Servers | p. 472 |
Ant | p. 472 |
Structure of an Ant Input File | p. 472 |
Projects | p. 473 |
Targets | p. 473 |
Tasks | p. 474 |
Invoking ANT | p. 475 |
Invoking from the Command Line | p. 475 |
Integrating with IDEs | p. 476 |
An Ant Example | p. 476 |
Summary | p. 479 |
Solutions Fast Track | p. 479 |
Frequently Asked Questions | p. 481 |
Table of Contents provided by Syndetics. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.