petstore中的machine是怎麼回事?
見作記號處,有
scf = (ShoppingClientFacadeLocal) machine.getAttribute(PetstoreKeys.SHOPPING_CLIENT_FACADE);
一句,其中的machine從何而來?
原始碼如下:
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 imports
import javax.ejb.CreateException;
import javax.naming.NamingException;
// WAF imports
import 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 imports
import 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 imports
import com.sun.j2ee.blueprints.asyncsender.ejb.AsyncSenderLocalHome;
import com.sun.j2ee.blueprints.asyncsender.ejb.AsyncSender;
// unidue id generator imports
import com.sun.j2ee.blueprints.uidgen.ejb.UniqueIdGeneratorLocal;
import com.sun.j2ee.blueprints.uidgen.ejb.UniqueIdGeneratorLocalHome;
// shoppingcart component imports
import com.sun.j2ee.blueprints.cart.ejb.ShoppingCartLocal;
import com.sun.j2ee.blueprints.cart.model.CartItem;
// service locator imports
import com.sun.j2ee.blueprints.servicelocator.ejb.ServiceLocator;
import com.sun.j2ee.blueprints.servicelocator.ServiceLocatorException;
// petstore imports
import 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;
//here **********************************************************
scf = (ShoppingClientFacadeLocal) machine.getAttribute(PetstoreKeys.SHOPPING_CLIENT_FACADE);
//here **********************************************************
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);
}
}
scf = (ShoppingClientFacadeLocal) machine.getAttribute(PetstoreKeys.SHOPPING_CLIENT_FACADE);
一句,其中的machine從何而來?
原始碼如下:
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 imports
import javax.ejb.CreateException;
import javax.naming.NamingException;
// WAF imports
import 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 imports
import 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 imports
import com.sun.j2ee.blueprints.asyncsender.ejb.AsyncSenderLocalHome;
import com.sun.j2ee.blueprints.asyncsender.ejb.AsyncSender;
// unidue id generator imports
import com.sun.j2ee.blueprints.uidgen.ejb.UniqueIdGeneratorLocal;
import com.sun.j2ee.blueprints.uidgen.ejb.UniqueIdGeneratorLocalHome;
// shoppingcart component imports
import com.sun.j2ee.blueprints.cart.ejb.ShoppingCartLocal;
import com.sun.j2ee.blueprints.cart.model.CartItem;
// service locator imports
import com.sun.j2ee.blueprints.servicelocator.ejb.ServiceLocator;
import com.sun.j2ee.blueprints.servicelocator.ServiceLocatorException;
// petstore imports
import 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;
//here **********************************************************
scf = (ShoppingClientFacadeLocal) machine.getAttribute(PetstoreKeys.SHOPPING_CLIENT_FACADE);
//here **********************************************************
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);
}
}
相關文章
- HttpOnly是怎麼回事?HTTP
- Python 數值中的下劃線是怎麼回事?Python
- 小遊戲使用者來源中的“其他”是怎麼回事?遊戲
- DNS快取中毒是怎麼回事?DNS快取
- packagereference 裡面的資產是怎麼回事?Package
- 《密碼學系列》|| 密碼學中的流密碼是怎麼回事?密碼學
- ot 這個蛋疼的快取是怎麼回事快取
- 路由器ping不通是怎麼回事?路由器
- 有些網站打不開是怎麼回事?網站
- petstore 的資料庫指令碼怎麼沒找到???資料庫指令碼
- springframe中的petstore中的setServlet()什麼時候呼叫SpringServlet
- Android8,reactnative中webView傳的token,vue中獲取不到是怎麼回事?AndroidReactWebViewVue
- 本地連線沒有有效的ip配置是怎麼回事
- seam 後臺報FullTextSessionProxy的錯誤是怎麼回事呢?Session
- 執行緒池是怎麼回事(附面試題)執行緒面試題
- 【Java面試】請談談AQS是怎麼回事兒?Java面試AQS
- Unreal 各種指標型別是怎麼回事Unreal指標型別
- reflect: NumField of non-struct type,這是怎麼回事?Struct
- rpm命令沒有反應是怎麼回事?
- V8 的 typeof null 返回 "undefined" 的 bug 是怎麼回事NullUndefined
- SSL證書出錯是怎麼回事?是由哪些原因導致的?
- 路由器官方宣稱的速率,到底是怎麼回事?路由器
- 域名暫停解析是怎麼回事?如何恢復解析?
- 網站進入時快時慢是怎麼回事網站
- 用友裡面的形態轉換單是怎麼回事?
- 更改授權後選單不顯示是怎麼回事?
- 軟體開發和產品經理是怎麼回事
- active聯機日誌檔案到底是怎麼回事
- 請高手幫我看一下這是怎麼回事
- C#非同步程式設計是怎麼回事(番外)C#非同步程式設計
- Java的併發程式設計中的多執行緒問題到底是怎麼回事兒?Java程式設計執行緒
- 【Golang】golang中那些不需要傳遞引數就能使用的變數是怎麼回事Golang變數
- 《Machine Learning in Action》—— Taoye給你講講Logistic迴歸是咋回事Mac
- 遊戲廣告變現:休閒遊戲的廣告變現是怎麼回事?遊戲
- Spring的許可權控制是怎麼一回事?Spring
- 一起看下MySQL的崩潰恢復到底是怎麼回事MySql
- 合成類遊戲的廣告是怎麼回事 合成 養豬 養牛 養成遊戲
- 方法返回型別為介面是怎麼回事?新手的疑惑,急!!!謝了!型別