Файл.war vs .ear

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

9 ответов

Решение

Из GeekInterview:

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

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

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

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

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

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

В контейнере EJB размещаются Java-бины Enterprise, основанные на API -интерфейсе EJB, предназначенном для предоставления расширенных бизнес-функций, таких как декларативные транзакции, безопасность на уровне декларативных методов и многопротокольная поддержка - так что это скорее стиль распределенных вычислений 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.

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

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

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

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

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

JAR-файлы

Файл JAR (сокращение от Java Archive) позволяет объединять несколько файлов в один. Файлы с ".jar"; расширение используется разработчиками программного обеспечения для распространения классов Java и различных метаданных. Они также содержат библиотеки и файлы ресурсов, а также вспомогательные файлы (например, файлы свойств).

Пользователи могут извлекать и создавать файлы JAR с помощью команды ".jar" Java Development Kit (JDK). ZIP инструменты также могут быть использованы.

JAR-файлы имеют дополнительные файлы манифеста. Записи в файле манифеста предписывают использование файла JAR. Спецификация "основного" класса для класса файлов обозначает файл как отдельную или "автономную" программу.

Файлы WAR

Файлы WAR (или архива веб-приложения) могут содержать файлы XML (расширяемый язык разметки), классы Java, а также страницы сервера Java для целей Интернет-приложения. Он также используется для маркировки библиотек и веб-страниц, которые составляют веб-приложение. Файлы с расширением.war содержат веб-приложение для использования с контейнерами сервера или JSP (страница сервера Java). Он содержит JSP, HTML (язык гипертекстовой разметки), JavaScript и различные файлы для создания вышеупомянутых веб-приложений.

WAR-файл структурирован как таковой, чтобы обеспечить специальные каталоги и файлы. Он также может иметь цифровую подпись (очень похожую на JAR-файл), чтобы показать достоверность кода.

EAR-файлы

Файл EAR (Enterprise Archive) объединяет файлы JAR и WAR в один архив. Эти файлы с расширением.ear имеют каталог для метаданных. Модули упакованы в архив для бесперебойной и одновременной работы различных модулей на сервере приложений.

Файл EAR также содержит дескрипторы развертывания (которые являются файлами XML), которые эффективно определяют развертывание различных модулей.

введите описание изображения здесь

См. http://www.wellho.net/mouth/754_tar-jar-war-ear-sar-files.html

tar (ленточные архивы) - используемый формат - это файл, записанный в последовательных единицах fileName, fileSize, fileData - без сжатия. может быть огромным

Jar (архив Java) - используемые методы сжатия - обычно содержит информацию Java, такую ​​как файлы классов / Java. Но может содержать любые файлы и структуру каталогов

war (архивы веб-приложений) - подобные jar-файлы имеют только определенную структуру каталогов согласно спецификации JSP/Servlet для целей развертывания

ear (корпоративные архивы) - аналогично jar-файлам. иметь структуру каталогов, соответствующую требованиям J2EE, чтобы ее можно было развернуть на серверах приложений J2EE. - может содержать несколько файлов JAR и WAR

Ушные файлы предоставляют больше возможностей для настройки взаимодействия с сервером приложений.

Например: если версия сервера приложений в спящем режиме старше, чем версия, предоставляемая вашими зависимостями, вы можете добавить следующее в ear-deployer-jboss-beans.xml для JBOSS, чтобы изолировать загрузчики классов и избежать конфликтов:

<bean name="EARClassLoaderDeployer" class="org.jboss.deployment.EarClassLoaderDeployer">    
  <property name="isolated">true</property>
</bean>

или в src/main/application/META-INF/jboss-app.xml:

<?xml version="1.0"?>
<jboss-app>
<loader-repository>
    loader=nameofyourear.ear
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</jboss-app> 

Это обеспечит отсутствие конфликта загрузчика классов между вашим приложением и сервером приложений.

Обычно механизм загрузчика классов работает так:

Когда запрос на загрузку класса представляется загрузчику классов, он сначала запрашивает загрузчик родительского класса для выполнения запроса. Родитель, в свою очередь, запрашивает у своего родителя класс, пока запрос не достигнет вершины иерархии. Если загрузчик классов в верхней части иерархии не может выполнить запрос, то загрузчик класса, который вызвал его, отвечает за загрузку класса.

Изолируя загрузчики классов, ваш ушной загрузчик классов не будет выглядеть в родительском (=JBoss / другой AS загрузчик классов). Насколько я знаю, это невозможно с военными файлами.

J2EE определяет три типа архивов:

  1. Архивы Java (JAR) Файл JAR содержит один или несколько классов Java, манифест и дескриптор. Файлы JAR - самый низкий уровень архива. JAR-файлы используются в J2EE для упаковки EJB-компонентов и клиентских Java-приложений.

  2. Файлы WARвеб-архивов (WAR) аналогичны файлам JAR, за исключением того, что они предназначены специально для веб-приложений, созданных из сервлетов, JSP и поддерживающих классов.

  3. Корпоративные архивы (EAR) "Файл EAR содержит все компоненты, которые составляют конкретное приложение J2EE.

Для переноса проекта развертывание стало проще. нужно сжать в один файл. JAR (архив Java) группа файлов.class

WAR (веб-архив) - каждая война представляет собой одно веб-приложение - используйте только такие веб-технологии, как сервлет, можно использовать jsps. - может работать на сервере Tomcat - веб-приложение, разработанное только с использованием веб-технологий. jsp servlet html js - представление информации только без транзакций.

EAR (корпоративный архив) - каждая война представляет собой одно корпоративное приложение - мы можем использовать все, что угодно, от j2ee, например, ejb, с радостью можно использовать jms. - может работать на сервере Glassfish, а не на сервере Tomcat. - корпоративное приложение, разработанное по любой технологии, от j2ee, как все веб-приложения, ejbs, jms и т. д., - выполняет транзакции с представлением информации. например. Банк приложение, приложение Телеком

Другие вопросы по тегам