DeliverItemsBean.java
上传用户:hgs128
上传日期:2007-02-03
资源大小:166k
文件大小:4k
源码类别:

百货/超市行业

开发平台:

WINDOWS

  1. package mdb;
  2. import javax.ejb.MessageDrivenBean;
  3. import javax.jms.MessageListener;
  4. import javax.jms.ObjectMessage;
  5. import javax.naming.InitialContext;
  6. import cmp.ItemLocal;
  7. import cmp.ItemLocalHome;
  8. import cmp.ItemUtil;
  9. import cmp.SupplierData;
  10. import stateless.StoreAccess;
  11. import stateless.StoreAccessHome;
  12. import stateless.StoreAccessUtil;
  13. /*
  14.  * Created on Jun 19, 2003
  15.  *
  16.  * To change the template for this generated file go to
  17.  * Window>Preferences>Java>Code Generation>Code and Comments
  18.  */
  19. /**
  20.  * @ejb.bean name="DeliverItems" 
  21.  *     acknowledge-mode="Auto-acknowledge" 
  22.  *     destination-type="javax.jms.Queue" 
  23.  *     subscription-durability="NonDurable" 
  24.  *     transaction-type="Bean" 
  25.  * 
  26.  * @ejb.ejb-ref
  27.  *      ejb-name="StoreAccess"
  28.  *      view-type="remote"
  29.  *      ref-name="StoreAccess"
  30.  * 
  31.  * @ejb.ejb-ref
  32.  *      ejb-name="Item"
  33.  *      view-type="local"
  34.  *      ref-name="ItemLocal"
  35.  *  
  36.  * @jboss.ejb-ref-jndi ref-name="ItemLocal"
  37.  * jndi-name="ItemLocal"
  38.  
  39.  * @jboss.ejb-ref-jndi ref-name="StoreAccess"
  40.  * jndi-name="StoreAccessBean"
  41.  * 
  42.  * @jboss.destination-jndi-name
  43.  *      name="queue/DelMdbQueue"
  44.  * 
  45.  **/
  46. public class DeliverItemsBean implements MessageDrivenBean, MessageListener {
  47. /** Required method for container to set context. */
  48. public void setMessageDrivenContext(
  49. javax.ejb.MessageDrivenContext messageContext)
  50. throws javax.ejb.EJBException {
  51. this.messageContext = messageContext;
  52. }
  53. /** 
  54. * Required creation method for message-driven beans. 
  55. * @ejb.create-method 
  56. */
  57. public void ejbCreate() {
  58. // no specific action required for message-driven beans 
  59. }
  60. /** Required removal method for message-driven beans. */
  61. public void ejbRemove() {
  62. messageContext = null;
  63. }
  64. /** 
  65. * This method implements the business logic for the EJB. 
  66. * <p>Make sure that the business logic accounts for asynchronous message processing. 
  67. * For example, it cannot be assumed that the EJB receives messages in the order they were 
  68. * sent by the client. Instance pooling within the container means that messages are not 
  69. * received or processed in a sequential order, although individual onMessage() calls to 
  70. * a given message-driven bean instance are serialized. 
  71. * <p>The <code>onMessage()</code> method is required, and must take a single parameter 
  72. * of type javax.jms.Message. The throws clause (if used) must not include an application 
  73. * exception. Must not be declared as final or static. 
  74. */
  75. public void onMessage(javax.jms.Message message) {
  76. System.out.println("Message Driven Bean got message " + message);
  77. // do business logic here
  78. System.out.println ("Entering DeliverItemsBean.onMessage()");
  79. try {
  80. if (message instanceof ObjectMessage) {
  81. DeliverItem di =  (DeliverItem) ((ObjectMessage) message).getObject();
  82. StoreAccess access = StoreAccessUtil.getHome().create();
  83. itemLocalHome = ItemUtil.getLocalHome();
  84. String suppAccessID = access.loginUser(di.getUsername(),di.getPasswd());
  85. System.out.println(" Login is sucessful with "+ suppAccessID);
  86. SupplierData sd = access.getSupplierData(suppAccessID);
  87. String suppID = sd.getSupplierid();
  88. if ( suppID != null ) {
  89. ItemLocal item = this.itemLocalHome.findByPrimaryKey(di.getItemID());
  90. String itemSuppID = item.getSupplierID() ;
  91. if ( suppID.equals(itemSuppID)) {
  92. System.out.println ("Delivering items in store now... :");
  93. Integer quantity = new Integer (di.getQuantity());
  94. item.fillStock(quantity);
  95. System.out.println ("Stock of iten after dleivery is :" + item.getItemData());
  96. }
  97.   }  
  98. }
  99. }catch (Exception e) {
  100. System.out.println ("In DeliverItems.onMessage  " +  e.getMessage() );
  101. }
  102. System.out.println("Entering DeliverItemsBean.onMessage()");
  103. }
  104. /** The context for the message-driven bean, set by the EJB container. */
  105. private javax.ejb.MessageDrivenContext messageContext = null;
  106. private InitialContext context = null;
  107. private StoreAccessHome storeAccess = null;
  108. private ItemLocalHome itemLocalHome = null;
  109. }