Próbowałem skonfigurować Pax-JMS z Activemq w Apache Karaf. Poniżej znajdują się odpowiednie wersje, które zainstalowałem:

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

Są to funkcje, które zainstalowałem:

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

Widzę, że moje konfiguracje są prawidłowo podniesione. Tak więc wykonanie polecenia jms:connectionfactories pokazuje połączenie, które skonfigurowałem.

UWAGA: Przede wszystkim https://ops4j1.jira.com/wiki/ Spacje / Paxjmy / strony / 331350050 / Konfiguracja, wierząc, że kroki byłyby podobne do ActiveMQ.

Moja konfiguracja wygląda następująco:

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

Na razie chciałem tylko przetestować, czy mogę zapytać o Broker ActiveMQ z KARAF. Tak więc próbowałem jms:info jms/demo.consumer. Ale konsekwentnie otrzymuję następujący komunikat o błędzie:

Error executing command: JMS 2.0 is not supported by ActiveMQ

Próbowałem zmieniać wersje, wypróbowałem również na świeżym instancjach KARAF. Ale do tej pory nie miałem szczęścia. Czy tutaj tęsknię tutaj za jakieś fundamentalne kroki?

-1
cooshal 22 luty 2019, 19:30

2 odpowiedzi

Najlepsza odpowiedź

Moduł PAX-JMS-Activemq obsługuje Activemq 5.x. Narzędzia wiersza poleceń mogą nie działać B / C, wywołuje ConnectionFactory.CreateContext () zamiast .CreateConnection (). JMS V2.0 ma kilka funkcji, które Activemq 5.x nie obsługuje - współdzielone trwałe subskrypcje, zasadniczo.

Dopóki kod, który otrzymuje połączenia konferencyjne .CreateConnection () zamiast .CreateContext () będzie dobrze w porządku z słoikami JMS API 2.0. Kod Java, Camel-Activemq, Camel-JMS itd. Wszystkie działają dobrze.

0
Matt Pavlovich 22 luty 2019, 23:00

Komunikat o błędzie jest dokładny. Activemq 5.x nie obsługuje JMS 2.0. To nie jest problem konfiguracyjny. To po prostu nie jest wdrożone. Jeśli chcesz, aby JMS 2.0 wsparcia z brokera ActiveMQ, powinieneś użyć Activemq Artemis. Warto na to, co jest warte, Dokumentacja, o której odnosi się korzysta z Activemq Artemis.

0
Justin Bertram 22 luty 2019, 16:33