List of Listings


Listing 4.1a: SOAP request corresponding to RPC style getLastPayment method invocation over http
Listing 4.1b: SOAP response corresponding to RPC style getLastPayment method invocation over http
Listing 4.2: A transaction coordinator passes the context of the transaction from one service to another by adding header entries
Listing 4.3a: An RPC-style Body element
Listing 4.3b: A Body element that consists of an XML document
Listing 4.4: A SOAP fault message sent by a receiver to the client
Listing 4.5: An email containing a SOAP message, with an XML document as an attachment
Listing 4.6: The SOAP request message
Listing 4.7: A SAAJ client for constructing and sending a SOAP message
Listing 4.8: The SOAP response from the service


Listing 5.1: Flute Bank's bill payment service illustrated as Java Interface
Listing 5.2: Flute Bank's bill payment service WSDL document
Listing 5.3: WSDL for RPC/encoded style
Listing 5.4: WSDL for RPC/literal style
Listing 5.5: WSDL for document/encoded style
Listing 5.6: WSDL for document/literal style


Listing 6.1: Flute Bank News WSDL
Listing 6.2: UDDI tModel for Flute Bank News service
Listing 6.3: Custom taxonomy
Listing 6.4: Category grouping
Listing 6.5: businessEntity that uses categorization
Listing 6.6: uploader assertions
Listing 6.7: First WSDL document: allows a single symbol to be passed
Listing 6.8: Second WSDL document: allows multiple symbols to be passed
Listing 6.9: UDDI tModel that corresponds to a single-symbol WSDL document
Listing 6.10: UDDI tModel that corresponds to a multiple-symbol WSDL document
Listing 6.11: WSDL service implementation
Listing 6.12: Service interface that references another service interface
Listing 6.13: WSDL service bindings
Listing 6.14: Extending the uploaderAssertion structure
Listing 6.15: Creating a new business assertion
Listing 6.16: Creating a new uploader assertion


Listing 7.1: The BPSS document
Listing 7.2: The CPP document
Listing 7.3: The CPA document
Listing 7.4: The ebXML SOAP message


Listing 9.1: Sample XML file to be parsed with SAX
Listing 9.2a: SAX parsing code
Listing 9.2b: SAX parsing handler
Listing 9.3: IDL description of the DOM Document objectListing
Listing 9.4a: XML document with schema and namespaces
Listing 9.4b: The schema for the XML document
Listing 9.4c: The example from Listing 9.2a modified for schema validation
Listing 9.5: The XSL style sheet used to transform the XML from Listing 9.1


Listing 10.1: A multidimensional array of app-defined PaymentDetail objects mapped on the wire using SOAP encoding
Listing 10.2: Implementation for Flute Bank's BillPay service
Listing 10.3: xrpcc configuration in the reference implementation
Listing 10.4: Source file for
Listing 10.5: WSDL corresponding to Listing 10.4
Listing 10.6: Client using stubs
Listing 10.7: Client using DII directly, where all parameters are known (WSDL is not passed)
Listing 10.8: Client using DII indirectly, where all parameters are not known (WSDL is dynamically inspected)
Listing 10.9: Client using dynamic proxies
Listing 10.10a: SOAP request
Listing 10.10b: SOAP response
Listing 10.11: A compound message with a MIME attachment
Listing 10.12a: Service implementation for processing attachments
Listing 10.12b: xrpcc configuration for stub and tie generation
Listing 10.13: Client-side handler
Listing 10.14: Server-side handler
Listing 10.15: Service implementation
Listing 10.16: xrpcc configuration for handlers
Listing 10.17: C# client for JAX-RPC
Listing 10.18: EJB client and deployment descriptor code extract


Listing 11.1: app A: Sending the message
Listing 11.2: app B: Receiving the message
Listing 11.3: The SoapMailSender app
Listing 11.4: The SoapMailReceiver app
Listing 11.5: The SOAP request sent synchronously.
Listing 11.6: Client-side output
Listing 11.7: The synchronous PurchaseOrderService
Listing 11.8: The response returned by the synchronous PurchaseOrderService
Listing 11.9: An asynchronous message sender
Listing 11.10: The PurchaseOrderService handles asynchronous messages and also acts as a client.
Listing 11.11: The CallbackProcessor service on
Listing 11.12: The ebXML message sent from Flute Bank to OfficeMin
Listing 11.13: The ebXML message sent from OfficeMin to Flute Bank


Listing 12.1: Publishing organization information
Listing 12.2a: Service interface separated into billpayinterface.wsdl
Listing 12.2b: The schema definition referenced by billpayservice.wsdl
Listing 12.2c: The billpayservice.wsdl implemented by Flute Bank
Listing 12.3: JAXR app to publish the WSDL
Listing 12.4a: Querying organization information from UDDI
Listing 12.4b: Output of UDDIQuery
Listing 12.5a: Querying the registry for service information
Listing 12.5b: Client side output of a service query
Listing 12.6a: Service discovery based on namespace
Listing 12.6b: The client side output
Listing 12.7: SOAP request to the registry with the X.509 certificate
Listing 12.8: Using the open source JAXR provider to include the X.509 certificate
Listing 12.9: Publishing with the JAXR provider


Listing 13.1: The purchaseorder.xsd schema from Chapter 9
Listing 13.2: Simple JAXB code to read an XML document
Listing 13.3: The XML marshalled out by app code in Listing 13.2
Listing 13.4a: A schema with enumerations
Listing 13.4b: The generated interface for an enumeration in Listing 13.4a
Listing 13.5a: A complex element
Listing 13.5b: Generated binding interface for a complex element
Listing 13.6: Bindings affected by class and javadoc declarations
Listing 13.7: A typesafe-enumeration-generated binding


Listing 15.1: Signed check order
Listing 15.2: Apache Axis signer
Listing 15.3: Apache Axis verifier
Listing 15.4: Unencrypted XML document
Listing 15.5: Encrypted XML document
Listing 15.6: Completely encrypted XML document
Listing 15.7: Authentication assertion
Listing 15.8: Authentication assertion response
Listing 15.9: Attribute assertion request
Listing 15.10: Authorization assertion
Listing 15.11: Authorization assertion response
Listing 15.12: WS-Security example
Listing 15.13: Coordination context

Practical Considerations

Listing 16.1: WSDL for timer service
Listing 16.2: Timer service proxy

Future Standards

Listing 17.1: WSDL fragment showing the functional interface for Flute Bank's loan service
Listing 17.2: WSDL elements that combine WSDL operations properly

Appendix A: XML Schema

Listing A.1: employeeList XML
Listing A.2

Appendix B: JSTL

Listing B.1: An example JSP using JSTL XML tags