⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bidreceiverbean.java

📁 Spring2.0宝典
💻 JAVA
字号:
/*================================================================*/
//Program Name:BidReceiverBean.java
//作用:当用户完成出价,该消息驱动EJB会收到一个消息,然后该EJB通知邮件发送程序
//发送邮件通知用户。并且会想bidtable表中插入一条。
//Author:yeeku.H.lee kongyeeku@263.com
//This program is protected by copyright laws.
//Date 2005-6-10
/*================================================================*/
package leeauction.ejb;

import javax.ejb.EJBException;
import javax.ejb.MessageDrivenBean;
import javax.ejb.MessageDrivenContext;
import javax.ejb.ObjectNotFoundException;
import javax.jms.MapMessage;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.mail.Session;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;

public class BidReceiverBean implements MessageDrivenBean,MessageListener
{
	private MessageDrivenContext ctx;
	private UserHome userHome;
	private ItemHome itemHome;
	private BidHome  bidHome;
	private IDGenerator idGenerator;
	
	private MailSender mailSender;

	private Object narrow(Object o, Class c)
	{
		return PortableRemoteObject.narrow(o, c);
	}

	public void setMessageDrivenContext(MessageDrivenContext c)
	{
		ctx = c;
		try
		{
			Context ic = new InitialContext();
			//通过JNDI查找
			userHome = (UserHome)narrow(ic.lookup("userHome"),UserHome.class);
			itemHome = (ItemHome)narrow(ic.lookup("itemHome"),ItemHome.class);
			bidHome  = (BidHome)narrow(ic.lookup("bidHome"),BidHome.class);
			//以下是通过EJB引用查找
			IDGeneratorHome idHome=(IDGeneratorHome)narrow(ic.lookup("java:/comp/env/ejb/IDGeneratorHome"),IDGeneratorHome.class);
			idGenerator = idHome.create();
			//这也是通过JNDI查找的。
			Session mailSession = (Session)ic.lookup("MailDemo");
			mailSender = new MailSender(mailSession);
		}
		catch (NamingException ne)
		{
			ne.printStackTrace();
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}

	}

	public void ejbCreate() {}
	public void ejbRemove() {}

	public void onMessage(Message m)
	{
		MapMessage bidMsg = (MapMessage)m;
		Item item = null;
		User user = null;
		try
		{
			int itemId = bidMsg.getInt("Item_ID");
			String userName = bidMsg.getString("User_Name");
			double bidAmount = bidMsg.getDouble("Amount");
			item = itemHome.findByPrimaryKey(new Integer(itemId));
			user = userHome.findByPrimaryKey(userName);
			int id = idGenerator.getNextValue();
			Bid bid = bidHome.create(new Integer(id), item, user, bidAmount);
			String userEmail = user.getEmail();
			String description = item.getDescription();

			mailSender.sendMailMessage(userEmail,"kongyeeku@163.com",
				"Your bid on item: "+description,
				"Your bid in the amount of : "+bidAmount+
				"was accepted on item: "+description);
		}
		catch (Exception e)
		{
			e.printStackTrace();
			return;
		} 
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -