Apache felix не может загрузить dbcp2 как пакет - PullRequest
0 голосов
/ 06 октября 2019

Я создал пакет OSGi, который использует apache commons dbcp2 для создания пула соединений с базой данных. Я использую Apache Felix Gogo в качестве среды выполнения, чтобы начать свои пакеты. Я загрузил несколько других внешних библиотек без проблем в apache felix:

Изображение здесь (не могу опубликовать без повторений): https://i.gyazo.com/c779ccaba20e3fa327d61a621748d8dc.png

Однако каждый раз, когда я пытаюсь запустить пакет dbcp2, которыйпри получении пакета я получаю следующую ошибку:

Изображение здесь (не могу опубликовать сообщение): https://i.gyazo.com/ac7b673e63b9e6ad764af2e6adddb19a.png

Я обнаружил, что существует некоторый пакет Apache mixservice, но он содержит dbcp1.4 и мне нужен dbcp 2.5.0 или выше.

Что нужно сделать, чтобы apache felix мог загрузить dbcp2 как библиотеку, запрашиваемую другими проектами?

1 Ответ

0 голосов
/ 06 октября 2019

Что вы видите в ошибке, так это то, что для пакета dbcp требуется пакет javax.transaction в версии> = 1.1.0. Это не ошибка в комплекте. Это просто означает, что вам нужно предоставить этот пакет в контейнере OSGi.

Обычно вы устанавливаете пакет, который предоставляет пакет. В этом случае пакет приходит из jre, и системный пакет должен его экспортировать.

В зависимости от того, как вы запускаете felix, способ экспорта системного пакета может быть другим. Например, если вы используете bndtools, вы делаете это в файле bndrun. См. Пример Enroute microsevice .

. Для простого Феликса см. Параметр " org.osgi.framework.system.packages.extra ".

В этом примере экспортируется пакет javax.transaction (среди прочих).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...