RequestItemsBean.java
资源名称:MyStore.rar [点击查看]
上传用户:hgs128
上传日期:2007-02-03
资源大小:166k
文件大小:4k
源码类别:
百货/超市行业
开发平台:
WINDOWS
- /*
- * Created on 1999-5-18
- */
- package mdb;
- import java.rmi.RemoteException;
- import java.util.ArrayList;
- import java.util.Iterator;
- import javax.ejb.CreateException;
- import javax.ejb.FinderException;
- import javax.ejb.MessageDrivenBean;
- import javax.jms.JMSException;
- import javax.jms.MessageListener;
- import javax.jms.ObjectMessage;
- import javax.naming.NamingException;
- import cmp.*;
- import stateless.*;
- /**
- * @ejb.bean name="RequestItems"
- * acknowledge-mode="Auto-acknowledge"
- * destination-type="javax.jms.Queue"
- * transaction-type="Bean"
- *
- *--
- * This is needed for JOnAS.
- * If you are not using JOnAS you can safely remove the tags below.
- * @jonas.bean ejb-name="RequestItems"
- * jndi-name="RequestItemsBean"
- * @jonas.message-driven-destination jndi-name="YOUR_DESTINATION"
- *
- *--
- *
- *--
- * This is needed for JBOSS.
- * If you are not using JBOSS you can safely remove the tags below.
- * @jboss.destination-jndi-name name="MDB_DESTINATION"
- *
- * @ejb.ejb-ref
- * ejb-name="StoreAccess"
- * view-type="remote"
- * ref-name="StoreAccess"
- *
- * @jboss.ejb-ref-jndi ref-name="StoreAccess"
- * jndi-name="StoreAccessBean"
- *
- * @ejb.ejb-ref
- * ejb-name="Supplier"
- * view-type="local"
- * ref-name="SupplierLocal
- *
- * @jboss.ejb-ref-jndi ref-name="SupplierLocal"
- * jndi-name="SupplierLocal"
- *
- * @jboss.destination-jndi-name
- * name="queue/MdbQueue"
- *--
- **/
- public class RequestItemsBean implements MessageDrivenBean, MessageListener {
- private StoreAccessHome storeAccess = null;
- private SupplierLocalHome suppLocalHome = null;
- private ItemLocalHome itemLocalHome = null;
- /** Required method for container to set context. */
- public void setMessageDrivenContext(
- javax.ejb.MessageDrivenContext messageContext)
- throws javax.ejb.EJBException {
- this.messageContext = messageContext;
- }
- /**
- * Required creation method for message-driven beans.
- *
- * @ejb.create-method
- */
- public void ejbCreate() {
- // no specific action required for message-driven beans
- }
- /** Required removal method for message-driven beans. */
- public void ejbRemove() {
- messageContext = null;
- }
- /**
- * This method implements the business logic for the EJB.
- *
- * <p>Make sure that the business logic accounts for asynchronous message processing.
- * For example, it cannot be assumed that the EJB receives messages in the order they were
- * sent by the client. Instance pooling within the container means that messages are not
- * received or processed in a sequential order, although individual onMessage() calls to
- * a given message-driven bean instance are serialized.
- *
- * <p>The <code>onMessage()</code> method is required, and must take a single parameter
- * of type javax.jms.Message. The throws clause (if used) must not include an application
- * exception. Must not be declared as final or static.
- */
- public void onMessage(javax.jms.Message message) {
- System.out.println("Message Driven Bean got message " + message);
- System.out.println("Entering RequestitemsBean.onMessage()");
- ArrayList outOfStockItems = null;
- Iterator itemsIterator = null;
- if(message instanceof ObjectMessage) {
- try {
- RequestItem ri=(RequestItem)((ObjectMessage)message).getObject();
- StoreAccess access=StoreAccessUtil.getHome().create();
- String mgrUsrID=access.loginUser(ri.getUsername(), ri.getPasswd());
- outOfStockItems=access.getOutOfStockItems();
- itemsIterator=outOfStockItems.iterator();
- this.suppLocalHome=SupplierUtil.getLocalHome();
- System.out.println("List of out of stock items ");
- while(itemsIterator.hasNext()) {
- ItemData itemData=(ItemData)itemsIterator.next();
- String suppID=itemData.getSupplierID();
- SupplierLocal supplier=this.suppLocalHome.findByPrimaryKey(suppID);
- Integer quantity=new Integer(ri.getQuantity());
- String itemID=ri.getItemID();
- supplier.requestItem(itemID, quantity);
- }
- } catch (JMSException e) {
- e.printStackTrace();
- } catch (RemoteException e) {
- e.printStackTrace();
- } catch (CreateException e) {
- e.printStackTrace();
- } catch (NamingException e) {
- e.printStackTrace();
- } catch (FinderException e) {
- e.printStackTrace();
- }
- }
- // do business logic here
- }
- /** The context for the message-driven bean, set by the EJB container. */
- private javax.ejb.MessageDrivenContext messageContext = null;
- }