Невозможно отправить сообщения с QPID JMS и RabbitMQ: Создание AmqpFixedProducer - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь отправить простое сообщение на RabbitMQ (версия: 3.7.7) с AMQP 1.0 с использованием клиента QPID JMS. Я использую следующие версии:

        <dependency>
            <groupId>org.apache.qpid</groupId>
            <artifactId>qpid-jms-client</artifactId>
            <version>0.40.0</version>
        </dependency>

        <dependency>
            <groupId>javax.jms</groupId>
            <artifactId>javax.jms-api</artifactId>
            <version>2.0</version>
        </dependency>

Я включил плагин rabbitmq_amqp1_0 на RabbitMQ и создал очередь с именем «очередь» в брокере с помощью интерфейса управления. Затем я создал модульный тест со следующим содержанием:

public class JMSIssueTest {

    private static final String AMQP_URI = "amqp://localhost:5672";
    private static final String QUEUE_NAME = "queue";

    @Test
    public void testSend() throws Exception {
        JmsConnectionFactory factory = new JmsConnectionFactory(AMQP_URI);
        try(Connection connection = factory.createConnection()){
            connection.setExceptionListener(new MyExceptionListener());
            connection.start();
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            Queue queue = session.createQueue(QUEUE_NAME);
            MessageProducer producer = session.createProducer(queue); // the code stops here
            TextMessage message = session.createTextMessage("test");
            producer.send(message);
            System.out.println("send");
        }
    }
    private static class MyExceptionListener implements ExceptionListener {
        @Override
        public void onException(JMSException exception) {
            System.out.println("Connection ExceptionListener fired, exiting.");
            exception.printStackTrace(System.out);
            System.exit(1);
        }

    }
}

Если запустить этот тест, я не получаю сообщение об ошибке, но в консоли я вижу следующий вывод:

 DEBUG org.apache.qpid.jms.provider.amqp.builders.AmqpProducerBuilder - Creating AmqpFixedProducer for: queue

На RabbitMQ я вижу соединение с типом протокола AMQP 1.0.

Я неправильно создаю продюсера?

...