nothing stands out immediately.. maybe you can complete the test case by showing where the producer sends to the queue so that we know there is indeed a message in the queue...
On Mon, Jan 6, 2014 at 4:52 PM, rrazey <[email protected]> wrote: > 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. -- Christian Posta http://www.christianposta.com/blog twitter: @christianposta
