Пакет JMS ActiveMQ OSGI в Феликсе - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь добавить новый пакет OSGI в Felix (без Karaf) в качестве клиента ActiveMQ (отправитель сообщения).

Клиент ActiveMQ прекрасно работает в среде, отличной от OSGI.Но когда я использую тот же код (с некоторыми небольшими изменениями) в Феликсе, он выдает эту ошибку:

org.osgi.framework.BundleException: Невозможно разрешить com.packtpub.felix.bookshelf-inventory-impl-mock [7] (R 7.3): пропущенное требование [com.packtpub.felix.bookshelf-inventory-impl-mock [7] (R 7.3)] osgi.wiring.package;(& (osgi.wiring.package = javax.jms) (версия> = 1.1.0)) Неразрешенные требования: [[com.packtpub.felix.bookshelf-inventory-impl-mock [7] (R 7.3)] osgi.wiring.package;(& (osgi.wiring.package = javax.jms) (версия> = 1.1.0))]

Любая помощь очень ценится.

1 Ответ

3 голосов
/ 13 июня 2019

Распаковка сообщения дает вам сообщение громко и ясно:

Unable to resolve com.packtpub.felix.bookshelf-inventory-impl-mock[7]

В пакете 7 (com.packtpub.felix.bookshelf-inventory-impl-mock) возникла проблема

(R 7.3): missing requirement 

У вас было несколько обновлений, и 7-й пакет находится на третьей ревизии.Здесь не так важно знать: -)

osgi.wiring.package;

Вам не хватает пакета (osgi.wiring.package - это пространство имен OSGi для заголовков пакетов импорта / экспорта.)

(&(osgi.wiring.package=javax.jms)(version>=1.1.0))

Это фильтр LDAP / OSGi.Распаковываем:

osgi.wiring.package=javax.jms

Ищем пакет javax.jms

version>=1.1.0

И версия должна быть больше или равна 1.1.0

Пакетjavax.jms является пакетом Java EE и не является частью JRE.Вам нужно найти пакет, который его экспортирует (с правильной версией).Поскольку вы скомпилировали код, он должен быть уже в вашей сборке.Найдите этот пакет, а также разверните его в своей среде.

...