Мне нужно использовать activemq-client вместо свертки JAR-файлов activemq-all, потому что свертка содержит разные версии других библиотек, которые мы используем.
Я использую maven для управления зависимостями, клиентский файл извлекает:
- activemq-клиент (5.15.8)
- slf4j-api 1.7.25
- geronimo-jms_1.1_spec (1.1.1)
- hawtbuf (1.11)
- geronimo-j2ee-management_1.1_spec (1.0.1)
Все банки просто активны mq-all (5.15.8)
Используя этот код, с jar activemq-all я могу подключиться и начать получать сообщения. При звонке createConnection()
я получаю сообщение в журнале "Успешно подключено к ..."
Используя jar activemq-client, он зависает при вызове createSession()
(и выдает сообщение «ошибка после 10 попыток, попытка будет продолжаться»). Я не получаю сообщение "Успешно подключен к ...".
ConnectionFactory factory = new ActiveMQConnectionFactory(user, pass, url);
Connection AMQconn = factory.createConnection();
Session AMQsess = AMQconn.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = AMQsess.createQueue(queueName);
MessageConsumer AMQconsumer = AMQsess.createConsumer(queue);
Я предполагаю, что где-то отсутствует зависимость, но я не получаю no class def found
исключений и т. Д.
(я также использовал activemq версии 5.15.9, но наш сервер 5.15.8, так что придерживайтесь этого).
Более общая картина (почему jar-клиент против jar-пакета): мне нужно подключиться к hornetQ и AMQ в одном и том же процессе, и разбивание отдельных jar-файлов - это моя попытка исправить конфликтующие версии вещей в свернутые банки)