Вопрос-ответ

.war vs .ear file

Файл .war vs .ear

В чем разница между файлами .war и .ear?

Переведено автоматически
Ответ 1

WAR (веб-архив) - это модуль, который загружается в веб-контейнер сервера приложений Java. Сервер приложений Java имеет два контейнера (среды выполнения) - один веб-контейнер, а другой EJB-контейнер.

В веб-контейнере размещаются веб-приложения на основе JSP или Servlets API, разработанные специально для обработки веб-запросов, что больше похоже на стиль запроса / ответа распределенных вычислений. Веб-контейнер требует, чтобы веб-модуль был упакован как WAR-файл - это специальный JAR-файл с web.xml файлом в WEB-INF папке.

В EJB контейнере размещены корпоративные java-компоненты на основе EJB API, предназначенные для обеспечения расширенной бизнес-функциональности, такой как декларативные транзакции, безопасность на уровне декларативных методов и поддержка мультипротокольных протоколов - так что больше похоже на RPC-стиль распределенных вычислений. EJB-контейнеры требуют, чтобы модули EJB были упакованы в виде JAR-файлов - у них есть ejb-jar.xml файл в META-INF папке.

Корпоративные приложения могут состоять из одного или нескольких модулей, которые могут быть либо веб-модулями (упакованными в виде файла WAR), либо модулями EJB (упакованными в виде файла JAR), либо обоими из них. Корпоративные приложения упаковываются в виде EAR―файлов - это специальные JAR-файлы, содержащие application.xml файл в META-INF папке.

По сути, файлы EAR представляют собой надмножество, содержащее файлы WAR и файлы JAR. Серверы приложений Java позволяют развертывать автономные веб-модули в файле WAR, хотя внутренне они создают файлы EAR в качестве оболочки вокруг файлов WAR. Автономные веб-контейнеры, такие как Tomcat и Jetty, не поддерживают файлы EAR - это не полноценные серверы приложений. Веб-приложения в этих контейнерах должны развертываться только как файлы WAR.

На серверах приложений файлы EAR содержат такие конфигурации, как сопоставление ролей безопасности приложений, сопоставление ссылок EJB и сопоставление контекстных корневых URL веб-модулей.

Помимо веб-модулей и модулей EJB, файлы EAR также могут содержать соединительные модули, упакованные в виде файлов RAR, и клиентские модули, упакованные в виде файлов JAR.

Ответ 2

Из GeekInterview:


В приложении J2EE модули упаковываются как EAR, JAR и WAR в зависимости от их функциональности


JAR: модули EJB, которые содержат корпоративные java-компоненты (файлы классов) и дескриптор развертывания EJB, упакованы в виде файлов JAR с расширением .jar


Война: Веб-модули, содержащие файлы классов сервлетов, файлы JSP, вспомогательные файлы, GIF и HTML-файлы, упакованы в виде JAR-файла с расширением .war (веб-архив)


EAR: Все вышеупомянутые файлы (.jar и .war) упакованы в виде файла JAR с расширением .ear (enterprise archive) и развернуты на сервере приложений.


Ответ 3

war - веб-архив. Используется для развертывания веб-приложений в соответствии со стандартом servlet. Это файл jar, содержащий специальный каталог под названием WEB-INF и несколько файлов и директорий внутри него (web.xml, библиотека, классы), а также все HTML, JSP, изображения, CSS, JavaScript и другие ресурсы веб-приложения

ear - корпоративный архив. Используется для развертывания корпоративного приложения, содержащего EJB, веб-приложения и библиотеки сторонних производителей. Это также файл jar, у него есть специальный каталог под названием APP-INF, который содержит файл application.xml, и он содержит файлы jar и war.

Ответ 4

Файлы WAR (веб-архив) содержат файлы классов сервлетов, JSP (Java servlet pages), HTML и графические файлы, а также другие вспомогательные файлы.

Файлы EAR (корпоративный архив) содержат файлы WAR вместе с файлами JAR, содержащими код.

В этих файлах могут быть и другие вещи, но в основном они предназначены для того, что они звучат так, как они означают: WAR для материалов веб-типа, EAR для материалов корпоративного типа (войны, код, коннекторы и др.).

java jakarta-ee