Document Information


Part I Introduction

1.  Overview

2.  Using the Tutorial Examples

Part II The Web Tier

3.  Getting Started with Web Applications

4.  Java Servlet Technology

5.  JavaServer Pages Technology

6.  JavaServer Pages Documents

7.  JavaServer Pages Standard Tag Library

8.  Custom Tags in JSP Pages

9.  Scripting in JSP Pages

10.  JavaServer Faces Technology

11.  Using JavaServer Faces Technology in JSP Pages

12.  Developing with JavaServer Faces Technology

13.  Creating Custom UI Components

14.  Configuring JavaServer Faces Applications

15.  Internationalizing and Localizing Web Applications

Part III Web Services

16.  Building Web Services with JAX-WS

17.  Binding between XML Schema and Java Classes

18.  Streaming API for XML

19.  SOAP with Attachments API for Java

Part IV Enterprise Beans

20.  Enterprise Beans

21.  Getting Started with Enterprise Beans

22.  Session Bean Examples

23.  A Message-Driven Bean Example

Part V Persistence

24.  Introduction to the Java Persistence API

25.  Persistence in the Web Tier

26.  Persistence in the EJB Tier

27.  The Java Persistence Query Language

Part VI Services

28.  Introduction to Security in the Java EE Platform

29.  Securing Java EE Applications

30.  Securing Web Applications

31.  The Java Message Service API

32.  Java EE Examples Using the JMS API

33.  Transactions

34.  Resource Connections

35.  Connector Architecture

Part VII Case Studies

36.  The Coffee Break Application

Common Code

JAX-WS Coffee Supplier Service

Service Implementation

SAAJ Coffee Supplier Service

SAAJ Client

Sending the Request

Ordering Coffee

SAAJ Service

Returning the Price List

Returning the Order Confirmation

Coffee Break Server

JSP Pages

The orderForm Page

The checkoutForm Page

The checkoutAck Page

JavaBeans Components

The RetailPriceList JavaBeans Component

The ShoppingCart JavaBeans Component

The OrderConfirmations JavaBeans Component

The CheckoutFormBean JavaBeans Component

The CoffeeBreakBean JavaBeans Component

The RetailPriceListServlet Servlet

Resource Configuration

Building, Packaging, Deploying, and Running the Coffee Break Application

Setting the Port

Building, Packaging, and Deploying the JAX-WS Coffee Supplier Service

Building, Packaging, and Deploying the SAAJ Coffee Supplier Service

Building, Packaging, and Deploying the Coffee Break Server

Running the Coffee Break Client

Removing the Coffee Break Application

37.  The Duke's Bank Application

Part VIII Appendixes

A.  Java Encoding Schemes

B.  About the Authors



Overview of the Coffee Break Application

The Coffee Break does not maintain any inventory. It handles customer and order management and billing. Each order is filled by forwarding suborders to one or more coffee suppliers. Figure 36-1 shows this process.

Figure 36-1 Coffee Break Application Flow

A diagram showing the interaction of the Coffee Break client, server, and web services

The Coffee Break server obtains the coffee varieties and their prices by querying suppliers at startup and on demand.

  1. The Coffee Break server uses SAAJ messaging to communicate with one of the suppliers. The Coffee Break has been dealing with this supplier for some time and has previously made the necessary arrangements for doing request-response SAAJ messaging. The two parties have agreed to exchange four kinds of XML messages and have set up the DTDs those messages will follow.

  2. The Coffee Break server requests price lists from each of the coffee suppliers. The server makes the appropriate remote web service calls and waits for the response, which is a JavaBeans component representing a price list. The SAAJ supplier returns price lists as XML documents.

  3. Upon receiving the responses, the Coffee Break server processes the price lists from the JavaBeans components returned by calls to the suppliers.

  4. The Coffee Break server creates a local database of suppliers.

  5. When an order is placed, suborders are sent to one or more suppliers using the supplier’s preferred protocol.