Модулизация существующих веб-приложений с OSGi - PullRequest
4 голосов
/ 07 апреля 2011

Мне нужен совет здесь. Я хочу модулировать мои существующие веб-приложения на Java.
Пытался сделать это с Maven, и это сработало в некотором роде.
Мне удалось разделить сервисный слой в одном модуле («ядро»), а два других веб-приложения используют один и тот же модуль ядра.

Теперь я хочу попробовать это с OSGi, я хочу задействовать OSGi в модульности, чтобы я мог использовать его при необходимости.
У меня есть несколько вопросов здесь:
1. как модулировать любую часть моего приложения с OSGi, как начать с него? Существует множество примеров, которые можно начать с OSGi, но ни один не касается этого в существующем приложении.
2. как использовать его на сервере Tomcat? Я знаю, что мне нужен контейнер OSGi (Equinox, Apache Felix, ..) для использования OSGi, но как настроить совместную работу контейнера Tomcat и OSGi?

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

Заранее спасибо,
Милош.

Ответы [ 3 ]

4 голосов
/ 07 апреля 2011

вот учебники OSGi, которые помогут вам создать / активировать ваш пакет / веб-приложение.

http://blog.knowhowlab.org/2010/06/osgi-tutorial-from-project-structure-to.html

http://blog.knowhowlab.org/2010/10/osgi-tutorial-4-ways-to-activate-code.html

2 голосов
/ 07 марта 2013

Использование OSGi требует глубокого знания всех функций OSGi, особенно различного поведения загрузки классов.Вы должны учитывать, действительно ли OSGi приносит пользу вашему приложению.Если вы широко используете Class.forName, у вас будут проблемы.Есть также много сторонних библиотек, которые нелегко использовать с OSGi.

Поэтому убедитесь, что вы понимаете OSGi, прежде чем что-то менять в своем коде.Я бы рекомендовал книгу OSGi in Depth и / или OSGi in Action для изучения и понимания OSGi.

Не поймите меня неправильно, OSGi - хорошая технология, но она намного сложнее, чем кажется на первый взглядвзгляд.Вам не понадобится Tomcat, если ваше приложение полностью использует OSGi, контейнер OSGi - это среда выполнения приложений OSGi, а Tomcat Server - это еще одна среда исполнения.Если вам нужно связаться с сервером Tomcat, вы можете использовать JMS или что-то подобное.Взгляните на OSGi Remote Service

1 голос
/ 07 апреля 2011

Я бы порекомендовал Spring Dynamic Modules (http://www.springsource.org/osgi). Его преимущества в том, что вам не нужно запачкать руки со всеми неприятными деталями OSGi, и вы можете использовать его через Spring IOC.

Даже если вы хотите иметь дело с OSGi, это не значит, что вы должны сделать свое существующее приложение OSGi-осведомленным. Две следующие спецификации могут помочь вам абстрагировать ваши компоненты от OSGi API:

  1. OSGi Декларативные услуги (см. http://www.aqute.biz/Snippets/HelloWorldComponent)
  2. План OSGi (аналог Spring DM)

Удачи!

...