Middle
Tell us about your experience with JMS and ActiveMQ. What does the code for reading messages from a queue look like?
sobes.tech AI
Answer from AI
JMS (Java Message Service) is a standard API for working with messages in Java, and ActiveMQ is a popular message broker implementing JMS.
To read messages from a queue using JMS and ActiveMQ, a connection, session, message consumer are typically created, and then messages are received.
Example code for reading messages from a queue:
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;
public class JMSConsumer {
public static void main(String[] args) throws JMSException {
// Create a connection factory
ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
// Create a connection
Connection connection = factory.createConnection();
connection.start();
// Create a session without transactions and with auto acknowledgment
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create a queue
Destination queue = session.createQueue("exampleQueue");
// Create a message consumer
MessageConsumer consumer = session.createConsumer(queue);
// Receive a message (wait up to 1 second)
Message message = consumer.receive(1000);
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
System.out.println("Received message: " + textMessage.getText());
} else {
System.out.println("Received a non-text message");
}
// Close resources
consumer.close();
session.close();
connection.close();
}
}
This code connects to ActiveMQ, listens to the "exampleQueue" queue, and outputs the text of the received message.