2013-10-25 2 views
1

Я пытаюсь добавить модуль в существующую инфраструктуру osgi (www.ogema.org). Мне нужно использовать библиотеку, которая зависит от javax.smartcardio. Я добавил библиотеку в локальный репозиторий и, похоже, работает. Но когда я хочу, чтобы запустить пакет, использующий библиотеку я получаю ошибку:Как импортировать javax.smartcardio в пакет osgi при создании с maven?

The bundle "org.ogema.examples.securitymodule-app_1.1.1 [12]" could not be resolved. Reason: Missing Constraint: Import-Package: javax.smartcardio; version="0.0.0" 

Как я могу добавить javax.smartcardio как зависимость?

ответ

1

javax.smartcardio является частью JRE (по крайней мере, в 6 лет, не уверен, что он уже был в 5, спецификация JSR 268 - с 2006 года, поэтому он мог быть в J5).

Очень вероятно, что вы не экспортируете этот пакет. Вы можете экспортировать этот пакет из фреймворка, установив свойство рамки org.osgi.framework.system.packages.extra в javax.smartcardio;version=1.0.0;jsr=268 (JSR или версия являются необязательными, но это хорошая документация).

В bndtools вы могли бы сделать:

-runsystempackages: \ 
    javax.smartcardio;version=1.0.0;jsr=268 
1

Он уже добавлен как зависимость, так что все в порядке. Проблема в том, что у вас нет пакета в OSGi Framework, который экспортирует пакет javax.smartcardio. Для каждого импортированного пакета в пакете должен быть соответствующий экспорт этого пакета из другого пакета.

Я не знаком с API-интерфейсом Smartcard, поэтому я не могу дать совет о том, как найти пакет, который его экспортирует. Если он доступен как простой JAR-файл, вам может понадобиться «обернуть» его как пакет OSGi.

Смежные вопросы