2013-10-31 88 views
1

我是activemq的新手。我創建了一個隊列並從一個客戶端向該隊列生成一條消息。我想從另一個客戶端使用該消息。對於使用該消息的代碼如下如何獲得消息而不在Activemq中創建隊列

ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616"); 

    // Create a Connection 
    Connection connection = connectionFactory.createConnection(); 
    connection.start(); 

    // Create a Session 
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 


    // Create the destination (Topic or Queue) 
    Destination destination = (Destination) session.createQueue("StaticQueueName"); 

    MessageConsumer consumer= session.createConsumer(destination); 
    Message message = (Message) consumer.receive(); 
    System.out.println(message.getStringProperty("status")); 
     if (message instanceof TextMessage) { 
     TextMessage textMessage = (TextMessage) message; 
     Text = textMessage.getText(); 
     System.out.println("Received: " + Text); 
    } else { 
     System.out.println("Received: " + message); 
    } 

,如果我們已經知道隊列名稱,然後無需create.i metioning下面的代碼。

Destination destination = (Destination) session.createQueue("StaticQueueName"); 

那麼有沒有任何可用的方法,如果我們知道隊列名稱before.so使用隊列名稱,我們可以訪問像getqueue(「隊列名稱」)的消息,而不是創建隊列。

回答

1

如果這樣的隊列已經存在,那麼將不會創建其他隊列,同樣會給你。它不會被'覆蓋'。

+0

請檢查此鏈接。http://stackoverflow.com/questions/19705413/how-to-get-the-message-from-temporary-queue-in-different-session/19708727?noredirect = 1#19708727 – nichu09

0
QueueReceiver receiver= session.createReceiver(queueName); 
receiver.setMessageListener(this); 

如果你知道queueName不僅僅是創建一個receiver它將從隊列中獲取消息。

相關問題