繁体   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