Не удается настроить JMS 2.0, ActiveMQ 5.x и Karaf - PullRequest
0 голосов
/ 22 февраля 2019

Я пытался настроить pax-jms с ActiveMQ в Apache karaf.Ниже приведены соответствующие версии, которые я установил:

activemq-osgi: 5.15.3
OPS4J Pax JMS * : 1.0.3
Karaf: 4.2.0
JMS API: 2.0.1

Это функции, которые я установил:

> feature:repo-add mvn:org.ops4j.pax.jms/pax-jms-features/1.0.3/xml/features 
> feature:install pax-jms-activemq pax-jms-config

Я вижу, что мои конфигурации правильно подобраны.Таким образом, выполнение команды jms:connectionfactories показывает настроенное мной соединение.

Примечание: я следовал https://ops4j1.jira.com/wiki/spaces/PAXJMS/pages/331350050/Configuration,, полагая, что шаги были бы аналогичными и для ActiveMQ.

Моя конфигурация выглядит следующим образом:

jms.url=tcp://localhost:61616
jms.username=system
jms.password=manager
type=activemq
osgi.jndi.service.name=jms/demo.consumer

Пока я просто хотел проверить, могу ли я запросить брокера ActiveMQ у Karaf.Таким образом, я попытался jms:info jms/demo.consumer.Но я постоянно получаю следующее сообщение об ошибке:

Error executing command: JMS 2.0 is not supported by ActiveMQ

Я пытался изменить версии, также пробовал новые экземпляры karaf.Но мне пока не повезло.Я пропускаю некоторые фундаментальные шаги здесь?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Модуль pax-jms-activemq поддерживает ActiveMQ 5.x.Инструменты командной строки могут не работать, потому что они вызывают ConnectionFactory.createContext () вместо .createConnection ().JMS v2.0 имеет несколько функций, которые не поддерживает ActiveMQ 5.x - в общем, общие долговременные подписки.

Пока код, который получает ConnectionFactory, вызывает .createConnection () вместо .createContext (), он будет прекрасно работать с jars API JMS 2.0.Java-код, camel-activemq, camel-jms и т. Д. Будут работать нормально.

0 голосов
/ 22 февраля 2019

Сообщение об ошибке является точным.ActiveMQ 5.x не поддерживает JMS 2.0.Это не проблема конфигурации.Это просто не реализовано.Если вам нужна поддержка JMS 2.0 от брокера ActiveMQ, вам следует использовать ActiveMQ Artemis .Что бы это ни стоило, документация , на которую вы ссылались , использует ActiveMQ Artemis.

...