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