Sobes.tech
Назад к вопросам
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" и выводит текст полученного сообщения.