使您的应用程序调用我的应用程序,第 1 部分: Apache Geronimo 通信基础 —— 开发、部署和测试(下)
2010-03-19 00:00:00 来源:WEB开发网消息驱动 bean()
既然您已经实现了 PurchaseOrderEJB,接下来就可以实现 PurchaseOrderMDB 了。与 EJB 不同,MDB 是 JMS 侦听器,侦听 JMS 主题或队列上的 JMS 消息。根据 EJB 2.1 规范,MDB 不仅限于 JMS 侦听器,而是可实现任意自定义侦听器接口。在本系列的第 3 部分中,您将再次回顾这一点,并修改 PurchaseOrderMDB,以便使用自定义侦听器接口,将其与 JCA 资源适配器相集成。
在本教程中,您将实现 PurchaseOrderMDB,它侦听 JMS 主题(POTopic)接收到的带有采购请求的 JMS 消息。接收到采购请求消息时,它将调用 PurchaseOrderEJB 来创建新采购订单。
实现 PurchaseOrderMDB
不同于实体 bean,MDB 不必实现远程接口或主接口,而是要实现 MessageDrivenBean 和 MessageListener 接口 —— 因而必须实现 onMessage() 方法。清单 9 给出了 PurchaseOrderMDB 的代码片段。
PurchaseOrderMDB 的源文件(.java)可在 $part1.home/src/examples/po/mdb 目录下找到。
清单 9. MDB 源代码
public class PurchaseOrderMDB
implements MessageDrivenBean, MessageListener {
private MessageDrivenContext ctx = null;
public void setMessageDrivenContext(MessageDrivenContext mdCtx)
throws EJBException {
ctx = mdCtx;
}
public void onMessage(Message msg) {
if (msg instance of ObjectMessage) {
Serializable bean = ((ObjectMessage) msg).getObject();
poBean = (PurchaseOrderBean) bean;
addPurchaseOrder(poBean);
}
}// end onMessage
更多精彩
赞助商链接