2016-11-22 5 views
2

Я планирую разработать веб-приложение с использованием Java и основано на некоторой структуре MVC. Это приложение должно поддерживать плагины.Как вызвать службу OSGi извне OSGi Framework.?

Итак, я планирую создать плагин с использованием контейнера OSGI (apache felix) и выставить плагин как услугу (используя функцию служебного реестра OSGI).

Оба (веб-приложение и служба OSGI) будут работать в одном JVM.

Итак, мне нужна помощь в том, как я могу использовать службу OSGI (плагин) за пределами контейнера OSGI?

Я в основном хочу вызвать открытую OSGI-службу вне OSGI, в данном случае в моем веб-приложении.

Заранее благодарен!

+0

Не по теме: У меня были аналогичные требования: OSGi для модульной модуляции и Eclipse E4 для модульной модуляции. Результатом является проект (работа в процессе), который позволяет использовать HTML5/CSS3/JavaScript (frontend) + OSGi/Eclipse (backend): https://github.com/erdalkaraca/hi5 –

+0

Почему бы вам не запустить свою веб-приложение внутри OSGi? –

ответ

5

Для выполнения этой работы вам необходимо иметь пакет api службы в пути к классам, где вы запускаете инфраструктуру OSGi. Затем вам нужно экспортировать этот пакет в качестве экспорта системного пакета. Это единственный способ, каким образом пакет, реализующий службу и код OSGi, может видеть один и тот же класс интерфейса службы.

Затем вы используете FrameworkFactory для создания экземпляра Framework, который вы можете запустить. Из фреймворка вы можете получить BundleContext и использовать его для получения экземпляра службы.

See embedding felix для получения более подробной информации.

+0

Спасибо большое! Кристиан – parthiban

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