package fr.mch.mdo.jms.client;
import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;
public class JmsClientQueueConsumer extends JmsClientQueue implements MessageListener
{
public JmsClientQueueConsumer() {
}
public JmsClientQueueConsumer(MessageListener listener) {
try {
if (connection != null) {
// Step 5. Create a JMS Session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Step 9. Create a JMS Message Consumer
MessageConsumer messageConsumer = session.createConsumer(queue);
messageConsumer.setMessageListener(listener);
}
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
JmsClientQueueConsumer client = new JmsClientQueueConsumer();
Connection connection = client.getConnection();
try {
// Step 5. Create a JMS Session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Step 9. Create a JMS Message Consumer
MessageConsumer messageConsumer = session.createConsumer(client.getQueue());
messageConsumer.setMessageListener(client);
// Step 10. Start the Connection
connection.start();
// // Step 11. Receive the message
// TextMessage messageReceived = (TextMessage)
// messageConsumer.receive(5000);
//
// System.out.println("Received message: " +
// messageReceived.getText());
System.out.println("Waiting for messages ...");
try {
Thread.sleep(5000);
} catch (java.lang.InterruptedException ie) {
ie.printStackTrace(System.err);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.close();
}
}
}
@Override
public void onMessage(Message message) {
try {
// Step 11. Receive the message
System.out.println("Message Type: " + message.getJMSType());
if (message instanceof TextMessage) {
System.out.println("Received message: " + ((TextMessage) message).getText());
message.acknowledge();
}
} catch (JMSException e) {
// // TODO Auto-generated catch block
e.printStackTrace();
} finally {
}
}
}