Thanks for the link. It's very helpful.
However, I ran into a problem when I deploy the MDB ear file to Jboss. I got the following message:
Failed to create Resource SimpleMessageApp.ear - cause: java.lang.RuntimeException:org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS): *** DEPLOYMENTS IN ERROR: Name -> Error vfszip:/C:/jboss-5.1.0.GA/server/default/deploy/SimpleMessageApp.ear/ -> org.jboss.deployers.spi.DeploymentException: Could not deploy vfszip:/C:/jboss-5.1.0.GA/server/default/deploy/SimpleMessageApp.ear/app-client-ic.jar/ DEPLOYMENTS IN ERROR: Deployment "vfszip:/C:/jboss-5.1.0.GA/server/default/deploy/SimpleMessageApp.ear/" is in error due to the following reason(s): java.lang.RuntimeException: message-destination has no jndi-name/resolved-jndi-name MessageDestinationReferenceMetaData{name=jms/QueueName,type=javax.jms.Queue,link=ejb-jar-ic.jar#PhysicalQueue,ignore-dependecy=false,jndi-name=null,resolvoed-jndi-
Do you have any idea? (i'm not using EJB 3, just regular EJB)
Here's the code of my SimpleMessageBean:
public class SimpleMessageBean implements MessageDrivenBean, MessageListener {
static final Logger logger = Logger.getLogger("SimpleMessageBean");
private transient MessageDrivenContext mdc = null;
private Context context;
public SimpleMessageBean() {
logger.info("In SimpleMessageBean.SimpleMessageBean()");
}
public void setMessageDrivenContext(MessageDrivenContext mdc) {
logger.info("In SimpleMessageBean.setMessageDrivenContext()");
this.mdc = mdc;
}
public void ejbCreate() {
logger.info("In SimpleMessageBean.ejbCreate()");
}
public void onMessage(Message inMessage) {
TextMessage msg = null;
try {
if (inMessage instanceof TextMessage) {
msg = (TextMessage) inMessage;
logger.info("MESSAGE BEAN: Message received: " + msg.getText());
} else {
logger.warning("Message of wrong type: " +
inMessage.getClass().getName());
}
} catch (JMSException e) {
e.printStackTrace();
mdc.setRollbackOnly();
} catch (Throwable te) {
te.printStackTrace();
}
} // onMessage
public void ejbRemove() {
logger.info("In SimpleMessageBean.remove()");
}
} // class
Thanks a bunch!
Tuan