簡體   English   中英

如何在Activemq中不創建隊列的情況下獲取消息

[英]How to get Message without creating Queue in 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);
     }

如果我們已經知道隊列名稱,則無需在下面的代碼中創建。

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

因此,如果我們之前知道隊列名稱,是否有可用的方法。因此,使用該隊列名稱,我們可以訪問諸如getqueue(“ queue name”)之類的消息,而不用創建隊列。

如果已經存在這樣的隊列,那么將不會創建其他隊列,而是會給您同樣的隊列。 它不會被“覆蓋”。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM