разница между WAB и WAR

Я новичок в этом и читал о WABs, но хочу, чтобы очистить основное различие - Я имею в виду использование osgi, встроенного в tomcat, и ведение войны против создания WAB ?

когда следует рассматривать каждый вариант ?

1) OSGI встроенный в tomcat

2) tomcat в OSGI

3) Использование WAB

1 ответов


OSGi, встроенный в контейнер (не только Tomcat!), вероятно, единственный вариант, когда вы вынуждены использовать традиционную модель развертывания JavaEE WAR, т. е. ИТ-отдел управляет контейнером, и вы можете только deloy WAR files к нему. Это bootstraps весь OSGi framework в веб-приложении и позволяет модульную разработку в веб-приложении. Затем веб-приложение состоит из набора пакетов OSGi. Его также можно использовать для переноса / переноса существующего устаревшего веб-приложения в модули OSGi. Однако это будет непросто.

Я хотел бы назвать второй подход (Tomcat в OSGi) как чистый подход OSGi. Tomcat или любой другой контейнер сервлетов (например., Jetty) может быть развернут как пакет (или набор пакетов) в рамках OSGi. Платформу OSGi контейнер. У вас больше нет полного разделения веб-приложения. Может пересекаться. Некоторые пакеты / модули могут реализовывать веб-функции, а другие-нет. Основной функционал (основной связки) могут быть повторно использованы другими связками паутины.

третий вариант является результатом работы новой спецификации в OSGi. В принципе, это веб-приложение с манифестом пакета OSGi. Таким образом, все веб-приложение может быть развернуто как один пакет OSGi на любой платформе с поддержкой WAB. Технически пакет может быть развернут как веб-приложение в контейнере сервлетов. Но он получает доступ к BundleContext. Это позволяет веб-приложению взаимодействовать с другими пакетами или web приложения, работающие в том же фреймворке.