[英]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.