MDB就是异步消息的消费者。当消息到达之后,由容器负责调用MDB。客户端发送消息到destination,MDB作为一个MessageListener接受消息。用程序员去关心MessageBean的管理。
MDB只是作为服务器端接收消息,而且ConnectionFacotory和JNDI都要自己去服务器上配置。
1、Weblogic配置JMS服务
具体JMS在weblogic服务器配置请看:http://qidaoxp.iteye.com/admin/blogs/480058
2、Example Bean
import javax.ejb.MessageDrivenBean;
import javax.ejb.MessageDrivenContext;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
/**
* Demonstrates usage of a Message-Driven EJB.
*
* @author Copyright (c) 1999-2008 by BEA Systems, Inc. All Rights Reserved.
*/
public class MessageTraderBean implements MessageDrivenBean, MessageListener {
private static final boolean VERBOSE = true;
private MessageDrivenContext m_context;
private int m_tradeLimit;
/**
* Sets the session context.
*
* @param ctx MessageDrivenContext Context for session
*/
public void setMessageDrivenContext(MessageDrivenContext ctx) {
m_context = ctx;
}
/**
* Retrieve the int value of the TextMessage and
* increment the RMI counter by that much.
*/
public void onMessage(Message msg) {
TextMessage tm = (TextMessage) msg;
try {
String text = tm.getText();
log("Received new quote : "+text);
}
catch(JMSException ex) {
System.err.println("An exception occurred: "+ex.getMessage());
}
}
/**
* This method is required by the EJB Specification,
* but is not used by this example.
*/
public void ejbCreate() { }
/**
* This method is required by the EJB Specification,
* but is not used by this example.
*/
public void ejbRemove() { }
static void p(String s) {
System.out.println("*** <MessageTraderBean> "+s);
}
private void log(String s) {
if (VERBOSE) System.out.println(s);
}
}
3、ejb-jar.xml
<ejb-jar>
<enterprise-beans>
<message-driven>
<display-name>MessageTraderBean</display-name>
<ejb-name>MessageTraderBean</ejb-name>
<ejb-class>ejb.mdb.MessageTraderBean</ejb-class>
<transaction-type>Container</transaction-type>
<message-destination-type>javax.jms.Topic</message-destination-type>
</message-driven>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>MessageTraderBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
4、weblogic-ejb-jar.xml
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>MessageTraderBean</ejb-name>
<message-driven-descriptor>
<destination-jndi-name>testtopic</destination-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
注意destination-jndi-name为自己在服务器上配置的jndi要一致。
分享到:
相关推荐
Ejb2.0经典教程,有需要的朋友看看吧,不错的哦!
ejb2.0 ejb3.0的区别,比较详细讲解两者的区别
精通EJB2.0 书籍源码
使用ejb2.0 ql教程代码
ejb2.0的新特性介绍
EJB2.0经典视频,深入浅出讲解了EJB2.0规范,及语法.并配备有经典的实例进行解析讲解,适合初学者研读。
ejb2.0 教程,ejb2.0 教程,ejb2.0 教程
EJB2.0一个完整的Helloworld
ejb2.0开发
图解eclipse+myelcipse开发EJB2.0 一个最令初学者理解的开发 代码+文字+图片
里面清楚的讲解各个部分, ,资料仅作参考, 有兴趣兄弟赶紧去学学啊。希望有所帮助
ejb的使用指南,我见过的最好的EJB书籍之一,希望能得到大家的喜爱
从最基础开始介绍jsf,逐步深入,让读者容易接受.
关于EJB2.0的相关资料,具体的有新的CMP组件模型,新的支持JMS的bean类型
EJB2.0.pdf
全面系统讲解了分布式组件EJB的开发 虽然为EJB2.0但对于学习EJB原理,值得推荐.
一个简单的ejb2.0教程代码 很适用于初学者查看
EJB学习有很好的文档
ejb 2.0 websphere ibm