MDB Queue Injection
red247 Sep 23, 2008 8:40 PMI have a JMX service that publishes messages to a queue, which is monitored by a MDB. The MDB will receive the message without any truoble. I use injection to reference a queue to publish a message back to the JMX service. The injected queue always comes up with a null pointer exception. Does anyone see something wrong with what I have listed below? TIA.
components.xml section
<jms:queue-connection queue-connection-factory-jndi-name="java:/JmsXA" /> <jms:managed-queue-sender name="corrConvQueue" auto-create="true" queue-jndi-name="queue/corrConvQueue"/> <jms:managed-queue-sender name="corrConvProcessedQueue" auto-create="true" queue-jndi-name="queue/corrConvProcessedQueue"/>
MDB section
@MessageDriven(name="CorrConvMDB", activationConfig = {
@ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"),
@ActivationConfigProperty(propertyName="destination", propertyValue="queue/corrConvQueue")
}
)
public class CorrConvMDB implements MessageListener {
private static final Log log = LogFactory.getLog( CorrConvMDB.class );
protected int numberCandidates = 0;
@PersistenceContext
EntityManager manager;
@In(required=true)
protected transient QueueSession session;
@In(required=true)
protected transient QueueSender corrConvProcessedQueue;
/**
*
* @see javax.jms.MessageListener#onMessage(javax.jms.Message)
*/
@SuppressWarnings("unchecked")
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void onMessage(Message message) {
......create message......
// Return the message to the manager.
corrConvProcessedQueue.send(message);
}
}