Message driven Bean的问题!50分
Message driven Bean已经正常发布(控制台没有输出错误信息),
但是其onMessage()事件却不执行,为什么?
源代码:
package messagebean;
import javax.ejb.*;
import javax.jms.*;
import javax.naming.*;
public class messageBeanBean implements MessageDrivenBean, MessageListener {
MessageDrivenContext messageDrivenContext;
public void ejbCreate() throws CreateException {
}
public void ejbRemove() {
}
public void onMessage(Message msg) {
System.out.println("recieved:"+msg.toString());
/**@todo: flush out this method for a working MessageDrivenBean*/
}
public void setMessageDrivenContext(MessageDrivenContext messageDrivenContext) {
this.messageDrivenContext = messageDrivenContext;
}
}
ejb-jar的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<message-driven>
<display-name>messageBean</display-name>
<ejb-name>messageBean</ejb-name>
<ejb-class>messagebean.messageBeanBean</ejb-class>
<transaction-type>Bean</transaction-type>
<acknowledge-mode>auto-acknowledge</acknowledge-mode>
<message-driven-destination>
<destination-type>javax.jms.Queue</destination-type>
</message-driven-destination>
<resource-ref>
<description />
<res-ref-name>QueueConnectionFactory</res-ref-name>
<res-type>javax.jms.QueueConnectionFactory</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-env-ref>
<description />
<resource-env-ref-name>MyQueue</resource-env-ref-name>
<resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
</resource-env-ref>
</message-driven>
</enterprise-beans>
<assembly-descriptor />
</ejb-jar>
是不是在xml文件中指定了factory和Queue就能监听指定的Queue?还需不需要其它设置。