JAX-WS Coffee Supplier Service - The Java EE 5 Tutorial (original) (raw)
2. Using the Tutorial Examples
3. Getting Started with Web Applications
5. JavaServer Pages Technology
7. JavaServer Pages Standard Tag Library
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
16. Building Web Services with JAX-WS
17. Binding between XML Schema and Java Classes
19. SOAP with Attachments API for Java
21. Getting Started with Enterprise Beans
23. A Message-Driven Bean Example
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
28. Introduction to Security in the Java EE Platform
29. Securing Java EE Applications
31. The Java Message Service API
32. Java EE Examples Using the JMS API
36. The Coffee Break Application
Overview of the Coffee Break Application
Returning the Order Confirmation
The RetailPriceList JavaBeans Component
The ShoppingCart JavaBeans Component
The OrderConfirmations JavaBeans Component
The CheckoutFormBean JavaBeans Component
The CoffeeBreakBean JavaBeans Component
The RetailPriceListServlet Servlet
Building, Packaging, Deploying, and Running the Coffee Break Application
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
JAX-WS Coffee Supplier Service
The Coffee Break servers are clients of the JAX-WS coffee supplier service. The service code consists of the service implementation class, and several JavaBeans components that are used for method parameters and return types. The JavaBeans components are:
- AddressBean: shipping information for customer
- ConfirmationBean: order ID and ship date
- CustomerBean: customer contact information
- LineItemBean: order item
- OrderBean: order ID, customer, address, list of line items, total price
- PriceItemBean: price list entry (coffee name and wholesale price)
- PriceListBean: price list
These JavaBeans components are propagated to the clients by means of the wsimporttool.
Service Implementation
The Supplier class implements the placeOrder and getPriceList methods. So that you can focus on the code related to JAX-WS, these methods are short and simplistic. In a real world application, these methods would access databases and would interact with other services, such as shipping, accounting, and inventory.
The placeOrder method accepts as input a coffee order and returns a confirmation for the order. To keep things simple, the placeOrder method confirms every order and sets the ship date in the confirmation to the next day. The source code for the placeOrder method follows:
public ConfirmationBean placeOrder(OrderBean order) {
Date tomorrow = DateHelper.addDays(new Date(), 1);
ConfirmationBean confirmation =
new ConfirmationBean(order.getId(), DateHelper.dateToCalendar(tomorrow));
return confirmation;
}
The getPriceList method returns a PriceListBean object, which lists the name and price of each type of coffee that can be ordered from this service. The getPriceList method creates the PriceListBean object by invoking a private method named loadPrices. In a production application, the loadPrices method would fetch the prices from a database. However, our loadPrices method takes a shortcut by getting the prices from the SupplierPrices.properties file. Here are the getPriceList and loadPrices methods:
public PriceListBean getPriceList() {
PriceListBean priceList = loadPrices();
return priceList;
}
private PriceListBean loadPrices() {
String propsName = "com.sun.cb.ws.server.SupplierPrices";
Date today = new Date();
Date endDate = DateHelper.addDays(today, 30);
PriceItemBean[] priceItems = PriceLoader.loadItems(propsName);
PriceListBean priceList =
new PriceListBean(DateHelper.dateToCalendar(today),
DateHelper.dateToCalendar(endDate), priceItems);
return priceList;
}
Copyright © 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices