2015-12-15 1 views
0

Я получил эту ошибку, когда я попытался развернуть пакет, который использует Компендиумную службу:Как развернуть Osgi Compendium Services в Karaf 4?

Error executing command: Unable to resolve root: missing requirement [root] 
... 
osgi.wiring.package; filter:="(&(osgi.wiring.package=org.osgi.service.component)(version>=1.1.0) 
(!(version>=2.0.0)))"]] 

Моего пучок сконфигурирован так, он использует:

<dependency> 
    <groupId>org.osgi</groupId> 
    <artifactId>org.osgi.compendium</artifactId> 
    <version>5.0.0</version> 
</dependency> 

И acording к karaf 4 depts documenation. Версия Osgi Compendium 5.0.0. Означает ли это, что мне нужно вручную предоставить баннер сборщика karaf? есть ли какие-либо функции karaf, содержащие Compendium Services?

ответ

3

В сборнике и ядре для ядра содержатся API OSGi. Их можно использовать только во время сборки. Не устанавливайте их в OSGi. Основные API-интерфейсы реализованы в рамках пакета OSGi. В сборнике, а также в пакетах корпоративных API-интерфейсов содержится слишком много различных API-интерфейсов, которые могут быть полезны во время выполнения. Если вы их устанавливаете, они могут вызвать проблемы, противоречащие другим версиям API.

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

В этом случае вам необходимо установить функцию «scr», которая реализует спецификацию декларативных услуг.

+0

Привет, христианин, я работаю над реализацией UPnP OSGi. До сих пор я устанавливал osgi-compendium.jar вручную (включен в мою функцию). Вы имеете в виду, что лучше добавить UPnP OSGi API внутри моего пакета? –

+0

Вы можете вставить пакет api, но я бы предпочел установить этот пакет http://search.maven.org/#artifactdetails%7Corg.osgi%7Corg.osgi.service.upnp%7C1.2.0%7Cjar –

+0

Цените свой совет, Я последую за ним. Большое спасибо за ваш ответ! –

0

Я нашел цитату из Жан-Батист Онофре

Привет Боб,

Karaf 3.0.0 уже используют и корабль org.osgi.core и org.osgi.compendium.

Итак, вы можете использовать 5.0.0 для ядра, компендиума и предприятия.

С уважением JB

указал, что Karaf корабли OSGi компендиум. У меня был конфликт в моем pom.xml после перехода на версию 5.0.0, и я раньше этого не заметил.

+0

Христианин прав, что НИКОГДА не устанавливайте компендиум или корпоративные JAR в вашей среде исполнения. –