Developing message-driven beans
You can develop a bean implementation class for a message-driven bean as introduced by the Enterprise JavaBeans specification. A message-driven bean (MDB) is a message consumer that implements business logic and runs on the server.
Before you begin
About this task
The following example is a basic message-driven bean:
@MessageDriven(activationConfig={
@ActivationConfigProperty(propertyName="destination", propertyValue="myDestination"),
@ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue")
})
public class MsgBean implements javax.jms.MessageListener {
public void onMessage(javax.jms.Message msg) {
String receivedMsg = ((TextMessage) msg).getText();
System.out.println("Received message: " + receivedMsg);
}
}
As
with other enterprise bean types, you can also declare metadata for message-driven beans in the
deployment descriptor rather than using annotations, for example:
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar id="EJBJar_1060639024453" version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
metadata-complete="false">
<enterprise-beans>
<message-driven>
<ejb-name>MsgBean</ejb-name>
<ejb-class>com.acme.ejb.MsgBean</ejb-class>
<activation-config>
<activation-config-property>
<activation-config-property-name>destination</activation-config-property-name>
<activation-config-property-value>myDestination</activation-config-property-value>
</activation-config-property>
<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>
</message-driven>
</enterprise-beans>
</ejb-jar>
Note: In
WebSphere® Application Server version 9, the
destinationLookup
property
can also be used instead of the destination
activation configuration property. Both
the activation configuration properties serve the same purpose of setting the destination JNDI name
for MDBs. However, when both the activation properties are defined in the configuration, the
destinationLookup
property takes precedence over the destination
property.