I'm having an issue with consuming messages from a queue. When I go to
consume it (consumeMessageFromQueue()), there are no messages found. But if
I read the messages (readMessageFromQueue()), I see the message in the
queue. What is going on here?
Test.java:
@Test
public void receiveMessage () {
ActiveMQModule module = new ActiveMQModule(URL, QUEUE);
String messageText = module.consumeMessageFromQueue();
module.closeConnections();
assertEquals(MESSAGE, messageText);
}
ActiveMQModule.java:
package backup;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQQueue;
import javax.jms.*;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
public class ActiveMQModule {
private static ActiveMQConnectionFactory connectionFactory;
private Connection connection;
private Session session;
private Destination destination;
private static final int TIMEOUT_MILLISECONDS = 5000;
public ActiveMQModule(String url, String queueName) {
try {
connectionFactory = new ActiveMQConnectionFactory(url);
connection = connectionFactory.createConnection();
connection.start();
session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
destination = session.createQueue(queueName);
} catch (Exception e) {
handleException(e);
}
}
public String consumeMessageFromQueue() {
String messageText = null;
try {
MessageConsumer consumer = session.createConsumer(destination);
TextMessage message =
(TextMessage)consumer.receive(TIMEOUT_MILLISECONDS);
messageText = message.getText();
consumer.close();
} catch (Exception e) {
handleException(e);
}
return messageText;
}
public String readMessageFromQueue() {
String messageText = null;
try {
QueueBrowser browser =
session.createBrowser((Queue)destination);
TextMessage message =
(TextMessage)browser.getEnumeration().nextElement();
messageText = message.getText();
browser.close();
} catch (Exception e) {
handleException(e);
}
return messageText;
}
private void handleException(Exception e) {
System.out.println("Caught: " + e);
e.printStackTrace();
}
}
--
View this message in context:
http://activemq.2283324.n4.nabble.com/Can-t-consume-messages-from-queue-tp4676065.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.