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 wsimport tool.

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;    }

The JavaT EE 5 Tutorial
The JavaT EE 5 Tutorial
Year: 2004
Pages: 309

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net