📄 orderejbaction.java
字号:
/* * Copyright 2002 Sun Microsystems, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistribution in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * Neither the name of Sun Microsystems, Inc. or the names of * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * This software is provided "AS IS," without a warranty of any * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * * You acknowledge that Software is not designed, licensed or intended * for use in the design, construction, operation or maintenance of * any nuclear facility. */package com.sun.j2ee.blueprints.petstore.controller.ejb.actions;import java.util.Collection;import java.util.Iterator;import java.util.Date;import java.util.Locale;// J2EE importsimport javax.ejb.CreateException;import javax.naming.NamingException;// WAF importsimport com.sun.j2ee.blueprints.waf.event.Event;import com.sun.j2ee.blueprints.waf.event.EventResponse;import com.sun.j2ee.blueprints.waf.event.EventException;import com.sun.j2ee.blueprints.waf.controller.ejb.action.EJBActionSupport;// po component importsimport com.sun.j2ee.blueprints.purchaseorder.ejb.PurchaseOrder;import com.sun.j2ee.blueprints.lineitem.ejb.LineItem;import com.sun.j2ee.blueprints.xmldocuments.XMLDocumentException;import com.sun.j2ee.blueprints.petstore.controller.events.OrderEvent;import com.sun.j2ee.blueprints.contactinfo.ejb.ContactInfo;import com.sun.j2ee.blueprints.creditcard.ejb.CreditCard;// async component importsimport com.sun.j2ee.blueprints.asyncsender.ejb.AsyncSenderLocalHome;import com.sun.j2ee.blueprints.asyncsender.ejb.AsyncSender;// unidue id generator importsimport com.sun.j2ee.blueprints.uidgen.ejb.UniqueIdGeneratorLocal;import com.sun.j2ee.blueprints.uidgen.ejb.UniqueIdGeneratorLocalHome;// shoppingcart component importsimport com.sun.j2ee.blueprints.cart.ejb.ShoppingCartLocal;import com.sun.j2ee.blueprints.cart.model.CartItem;// service locator importsimport com.sun.j2ee.blueprints.servicelocator.ejb.ServiceLocator;import com.sun.j2ee.blueprints.servicelocator.ServiceLocatorException;// petstore importsimport com.sun.j2ee.blueprints.petstore.util.JNDINames;import com.sun.j2ee.blueprints.petstore.util.PetstoreKeys;import com.sun.j2ee.blueprints.petstore.controller.ejb.ShoppingClientFacadeLocal;import com.sun.j2ee.blueprints.petstore.controller.events.OrderEvent;import com.sun.j2ee.blueprints.petstore.controller.events.OrderEventResponse;import com.sun.j2ee.blueprints.petstore.controller.exceptions.ShoppingCartEmptyOrderException;public class OrderEJBAction extends EJBActionSupport { public EventResponse perform(Event e) throws EventException { OrderEvent oe = (OrderEvent)e; PurchaseOrder purchaseOrder = new PurchaseOrder(); ContactInfo billTo = oe.getBillTo(); ContactInfo shipTo = oe.getShipTo(); CreditCard creditCard = oe.getCreditCard(); String orderIdString = null; // get the UniqueIdGenerator EJB UniqueIdGeneratorLocal uidgen = null; try { ServiceLocator sl = new ServiceLocator(); UniqueIdGeneratorLocalHome home = (UniqueIdGeneratorLocalHome)sl.getLocalHome(JNDINames.UIDG_EJBHOME); uidgen = home.create(); } catch (javax.ejb.CreateException cx) { cx.printStackTrace(); } catch (ServiceLocatorException slx) { slx.printStackTrace(); } orderIdString = uidgen.getUniqueId("1001"); // get ther userId ShoppingClientFacadeLocal scf = null; scf = (ShoppingClientFacadeLocal)machine.getAttribute(PetstoreKeys.SHOPPING_CLIENT_FACADE); String userId = scf.getUserId(); purchaseOrder.setOrderId(orderIdString); purchaseOrder.setUserId(userId); purchaseOrder.setEmailId(billTo.getEmail()); purchaseOrder.setOrderDate(new Date()); purchaseOrder.setShippingInfo(shipTo); purchaseOrder.setBillingInfo(billTo); purchaseOrder.setCreditCard(creditCard); int lineItemCount = 0; float totalCost = 0; // Add the items from the shopping cart ShoppingCartLocal cart = scf.getShoppingCart(); Locale locale = (Locale)machine.getAttribute(PetstoreKeys.LOCALE); purchaseOrder.setLocale(locale); Collection items = cart.getItems(); // if the cart is empty throw an exception saying so if (items.size() == 0) { throw new ShoppingCartEmptyOrderException("Shopping cart is empty"); } Iterator it = items.iterator(); while (it.hasNext()) { CartItem item = (CartItem)it.next(); float cost = new Float(item.getUnitCost()).floatValue(); totalCost += (cost*item.getQuantity()); purchaseOrder.addLineItem(new LineItem(item.getCategory(), item.getProductId(), item.getItemId(), (lineItemCount++) + "", item.getQuantity(), cost)); } purchaseOrder.setTotalPrice(totalCost); try { ServiceLocator sl = new ServiceLocator(); AsyncSenderLocalHome home = (AsyncSenderLocalHome) sl.getLocalHome(JNDINames.ASYNCSENDER_LOCAL_EJB_HOME); AsyncSender sender= home.create(); sender.sendAMessage(purchaseOrder.toXML()); } catch (ServiceLocatorException sle) { sle.printStackTrace(); // throw new AdminBDException(sle.getMessage()); } catch (XMLDocumentException xde) { xde.printStackTrace(); System.err.println(xde.getRootCause().getMessage()); // throw new EventResponse or whatever } catch (CreateException ce) { //throw new AdminBDException(ce.getMessage()); } // empty the shopping cart cart.empty(); return new OrderEventResponse(billTo.getEmail(), orderIdString); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -