📄 bidreceiverbean.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 + -