Разница между WAB и WAR
Я новичок в этом и читаю о WAB, но хочу прояснить основную разницу - я имею в виду использование osgi, встроенного в tomcat, и создание WAR против создания WAB?
Когда следует рассмотреть каждый вариант?
1) OSGI встроен в Tomcat
2) кот в ОСГИ
3) с помощью WAB
1 ответ
OSGi, встроенный в контейнер (не только Tomcat!), Вероятно, является единственным вариантом, когда вы вынуждены использовать традиционную модель развертывания WAR в JavaEE, т. Е. ИТ-отдел управляет контейнером, и вы можете только развертывать в нем файлы WAR. Это загружает целую среду OSGi в веб-приложении и позволяет модульную разработку в веб-приложении. Затем веб-приложение состоит из набора пакетов OSGi. Его также можно использовать для переноса / переноса существующего устаревшего веб-приложения в модули OSGi. Однако это будет сложно.
Я хотел бы назвать второй подход (Tomcat в OSGi) чистым подходом OSGi. Tomcat или любой другой контейнер сервлетов (например, Jetty) можно развернуть в виде пакета (или набора пакетов) в среде OSGi. Каркас OSGi - это контейнер. У вас больше нет полного разделения веб-приложений. Может пересекаться. Некоторые пакеты / модули могут реализовывать веб-функциональность, а другие - нет. Базовая функциональность (базовые пакеты) может быть повторно использована другими веб-пакетами.
Третий вариант - результат новых спецификаций OSGi. По сути, это веб-приложение с манифестом пакета OSGi. Таким образом, все веб-приложение может быть развернуто как единый OSGi-пакет на любой платформе с поддержкой WAB. Технически пакет может быть развернут как веб-приложение в контейнере сервлета. Но он получает доступ к BundleContext. Это позволяет веб-приложению взаимодействовать с другими пакетами или веб-приложениями, работающими в той же среде.