Ответы:
Из GeekInterview :
В приложении J2EE модули упакованы как EAR, JAR и WAR в зависимости от их функциональности.
JAR: EJB-модули, которые содержат корпоративные Java-бины (файлы классов) и дескриптор развертывания EJB, упакованы как JAR-файлы с расширением .jar
WAR: Веб-модули, которые содержат файлы классов Servlet, JSP-файлы, вспомогательные файлы, GIF и HTML-файлы, упакованы в виде JAR-файла с расширением .war (веб-архив).
EAR: все перечисленные выше файлы (.jar и .war) упакованы в файл JAR с расширением .ear (корпоративный архив) и развернуты на сервере приложений.
WAR (Web Archive) представляет собой модуль , который загружается в веб - контейнер в виде Application Server 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
, .war
и .ear
файлы простые почтовые архивы, таким образом , может быть открыта любая программа , которая может обрабатывать обычные файлы .zip.
война - веб архив. Он используется для развертывания веб-приложений в соответствии со стандартом сервлета. Это 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 Server Page). Он содержит 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-файлы предоставляют больше возможностей для настройки взаимодействия с сервером приложений.
Например: если гибернационная версия сервера приложений старше, чем версия, предоставляемая вашими зависимостями, вы можете добавить следующее в 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 определяет три типа архивов:
Архивы Java (JAR) Файл JAR содержит один или несколько классов Java, манифест и дескриптор. JAR-файлы - самый низкий уровень архива. JAR-файлы используются в J2EE для упаковки EJB-компонентов и клиентских Java-приложений.
Файлы WAR веб-архивов (WAR) аналогичны файлам JAR, за исключением того, что они предназначены специально для веб-приложений, созданных из сервлетов, JSP и поддерживающих классов.
Корпоративные архивы (EAR) »Файл EAR содержит все компоненты, которые составляют конкретное приложение J2EE.
Для переноса проекта развертывание стало проще. нужно сжать в один файл. JAR (архив Java) группа файлов .class
WAR (веб-архив) - каждая война представляет одно веб-приложение - используйте только веб-технологии, такие как сервлет, можно использовать jsps. - может работать на сервере Tomcat - веб-приложение, разработанное только с использованием веб-технологий. jsp servlet html js - только представление информации без транзакций.
EAR (корпоративный архив) - каждое ухо представляет одно корпоративное приложение - мы можем использовать все, что угодно, от j2ee, например, ejb, с радостью можно использовать jms. - может работать на сервере Glassfish, а не на сервере Tomcat. - корпоративное приложение, разработанное с помощью любой технологии, от j2ee, как все веб-приложения, ejbs, jms и т. д., - выполняет транзакции с представлением информации. например. Банк приложение, приложение Телеком
.JAR, .WAR and .EAR
Вы также можете посмотреть видеоурок. Это очень просто или более понятно. Он объяснит , что это разница между .JAR, .WAR и .ear видео - учебник : разница между .JAR, .WAR и .ear