My MDB can´t access a Queue.
fidi Apr 2, 2007 9:57 AMI built a JMS as Producer to put messages in a Queue. In another application in another JBoss there is a MDB to access that Queue.
I check by jmx-console that the messages are being delivered with success in the Queue. But the MDB cant access that Queue. My Queue its called "filaMalefica".
my files:
- ejb-jar.xml
<?xml version="1.0"?> <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'> <ejb-jar> <enterprise-beans> <message-driven> <display-name>JmsMonsterBean</display-name> <ejb-name>JmsMonster</ejb-name> <ejb-class>JmsMonsterBean</ejb-class> <messaging-type>javax.jms.MessageListener</messaging-type> <transaction-type>Container</transaction-type> <message-destination-type>javax.jms.Queue</message-destination-type> <activation-config> <activation-config-property> <activation-config-property-name>destinationType</activation-config-property-name> <activation-config-property-value>javax.jms.Queue</activation-config-property-value> </activation-config-property> <activation-config-property> <activation-config-property-name>acknowledgeMode</activation-config-property-name> <activation-config-property-value>Auto-acknowledge</activation-config-property-value> </activation-config-property> <activation-config-property> <activation-config-property-name>subscriptionDurability</activation-config-property-name> <activation-config-property-value>NonDurable</activation-config-property-value> </activation-config-property> </activation-config> </message-driven> </enterprise-beans> </ejb-jar>
jboss.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN" "http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd"> <jboss> <enterprise-beans> <message-driven> <ejb-name>JmsMonster</ejb-name> <destination-jndi-name>queue/filaMalefica</destination-jndi-name> </message-driven> </enterprise-beans> </jboss>
JmsMonsterBean.class
import javax.ejb.EJBException;
import javax.ejb.MessageDrivenBean;
import javax.ejb.MessageDrivenContext;
import javax.jms.Message;
import javax.jms.MessageListener;
public class JmsMonsterBean implements MessageDrivenBean, MessageListener
{
private MessageDrivenContext ctx = null;
public JmsMonsterBean( ) { }
public void setMessageDrivenContext(MessageDrivenContext ctx)
throws EJBException {
this.ctx = ctx;
}
/**
* Required creation method for message-driven beans.
*/
public void ejbCreate( ) {
// no specific action required for message-driven beans
}
/** Required removal method for message-driven beans. */
public void ejbRemove( ) {
ctx = null;
}
/**
* Implements the business logic for the MDB.
*
* @param message The JMS message to be processed.
*/
public void onMessage(Message message)
{
System.out.println("JmsMonsterBean.onMessage( ): Received message.");
System.out.println(message);
}
}
Thanks!