2014-11-20 2 views
0

У меня есть комплект OSGi и сервлет. Теперь я хочу получить доступ к набору из сервлета. Для этой цели я использую следующие в сервлет:Экспортный пакет в OSGi Bundle

@Resource 
BundleContext context 
... 

ServiceReference ref = context.getServiceReference("package.MyOSGiServiceInterface"); 
MyOSGiServiceInterface service = context.getService(ref); 

Проблема в том, что мой сервлет не знает причину MyOSGiServiceInterface», которая определена в OSGiBundle. В Eclipse я добавил ссылку на проект пакета в моем пути сборки. Но во время выполнения он явно не может его найти.

Чтобы решить эту проблему, я играл вокруг с

(in bundle manifest) 
Export-Package: package-of-osgi-service-interface 

(in servlet manifest) 
Import-Package: package-of-osgi-service-Interface 
Dependencies: ...,deployment.MyBundle 

Но я не мог решить.

Какой недостающий шаг? Как я могу сообщить JBoss добавить пакет, содержащий MyOSGiServiceInterface в OSGiBundle, в путь класса?

Спасибо за ответы!

(JBoss AS 7.1.1)

--> error message <--

ответ

0

В конце концов я решил. Я должен был поставить правильную комбинацию настроек вместе, чтобы достичь своей цели:

  • развернуть сверток за: Файл - Экспорт - «Выдвижные плагин и фрагменты» в папку: «JBoss/автономные/развертывания»
  • Bundle-манифеста:
    • Bundle-Символическое: TestBundle
    • Bundle-Version: 1.0.0
    • Экспорт-пакет: "Пакет-который-включает в себя-мой-сервис"
  • Servlet-манифест:
    • Зависимости: org.osgi.core, org.jboss.osgi.framework, deployment.TestBundle: 1.0.0
    • Импорт-пакет: «Пакет-который-включает в себя-моем-сервисе "
Смежные вопросы