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

Reply via email to