2013-09-02 2 views
0

У меня есть сверток со следующим MainFest:Запуск OSGI расслоения из OSGI командной строки: Импорт-пакет отсутствующего ограничения

Manifest-Version: 1.0 
Bundle-ManifestVersion: 2 
Bundle-Name: HelloCamera 
Bundle-SymbolicName: HelloCamera 
Bundle-Version: 1.0.0.qualifier 
Bundle-Activator: hellocamera.Activator 
Bundle-RequiredExecutionEnvironment: JavaSE-1.6 
Import-Package: cameraservice, cameraserviceimpl, org.osgi.framework 

Layout: 
    HelloCamera 
     -> hellocamera 
      -> Activator.java 

И второй сверток с этим манифестом:

Manifest-Version: 1.0 
Bundle-ManifestVersion: 2 
Bundle-Name: CameraService 
Bundle-SymbolicName: CameraService 
Bundle-Version: 1.0.0.qualifier 
Bundle-Localization: plugin 
Export-Package: cameraservice, cameraserviceimpl 
Import-Package: org.osgi.framework 
Bundle-Activator: cameraserviceimpl.Activator 

Layout: 
    CameraService 
     -> cameraservice 
      -> CameraService.java 
     -> cameraserviceimpl 
      -> Activator.java 
      -> CameraServiceImpl.java 

Я могу запустить первый пакет из Eclipse и все работает нормально, как ожидалось. Затем я экспортировал обе связки как CameraService.jar и HelloCamera.jar respectivly

Я открыл свою OSGi консоль, java -jar equinox.jar -console и

osgi> install file:CameraService.jar 
osgi> install file:HelloCamera.jar 
osgi> ss 
      id State   Bundle 
      17 INSTALLED  HelloCamera_1.0.0.qualifier 
      18 RESOLVED  unknown_0.0.0 [18] 

тогда я получаю

The Bundle could not be resolved. Reason: Missing Constraint: Import-Package: cameraservice; version="0.0.0" 
+0

Что вы хотите сказать, что вы экспортировали * оба * пучки как 'jar'? Одна «банка», одна пучка. – chrylis

+0

@chrylis Я попытался экспортировать их вместе как один пакет и как два отдельных пакета – cxzp

+0

Просьба отправить манифест из пакета «two-jjar». (Скопировав его из zip-файла, а не из Eclipse.) – chrylis

ответ

1

После поиска

Я нашел проблема заключалась в файлах манифеста. При экспорте баннеров в мои настройки я сказал, что файл манифеста уже находится в папке.

Я никогда не смотрел на то, что указывал путь (предполагая, что затмение установило бы его правильно), однако Eclipse не изменил свое местоположение, поэтому обе банки использовали один и тот же файл манифеста.

Извлеченный урок. Всегда проверяйте форму до слепого прессования.

+0

Похоже, что вы строите свои пучки очень вручную и подвержен ошибкам. Почему бы не изучить правильную оснастку, например bnd и Bndtools? –

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