Назад к вопросам
Middle
5
Расскажите про опыт работы с JMS и ActiveMQ. Как выглядит код для чтения сообщений из очереди?
Компании, где спрашивали
Финансовые платформы
Ответ от нейросети
sobes.tech AI
JMS (Java Message Service) — это стандартный API для работы с сообщениями в Java, а ActiveMQ — популярный брокер сообщений, реализующий JMS.
Для чтения сообщений из очереди с помощью JMS и ActiveMQ обычно создаётся соединение, сессия, получатель сообщений (consumer), и затем происходит получение сообщений.
Пример кода для чтения сообщений из очереди:
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;
public class JMSConsumer {
public static void main(String[] args) throws JMSException {
// Создаём фабрику соединений
ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
// Создаём соединение
Connection connection = factory.createConnection();
connection.start();
// Создаём сессию без транзакций и с автоматическим подтверждением
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Создаём очередь
Destination queue = session.createQueue("exampleQueue");
// Создаём получателя сообщений
MessageConsumer consumer = session.createConsumer(queue);
// Получаем сообщение (ожидаем до 1 секунды)
Message message = consumer.receive(1000);
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
System.out.println("Получено сообщение: " + textMessage.getText());
} else {
System.out.println("Получено не текстовое сообщение");
}
// Закрываем ресурсы
consumer.close();
session.close();
connection.close();
}
}
Этот код подключается к ActiveMQ, слушает очередь "exampleQueue" и выводит текст полученного сообщения.