EAR (формат файла) - EAR (file format)

Корпоративный архив
Расширение имени файла
.ухо
Тип интернет-СМИ приложение / java-архив
Разработано Sun Microsystems
Тип формата файловый архив , сжатие данных
Расширен с БАНКА

ЕАР ( Е Nterprise РИМЕНЕНИЕ R резанец ) представляет собой формат файла , используемый Джакартской EE для упаковки одного или нескольких модулей в единый архив с тем , что развертывание различных модулей на качестве сервера приложений происходит одновременно и последовательно. Он также содержит файлы XML, называемые дескрипторами развертывания, которые описывают, как развертывать модули.

Ant , Maven или Gradle можно использовать для создания файлов EAR.

Файловая структура

Файл EAR - это стандартный файл JAR (и, следовательно, файл Zip ) с расширением .ear, с одной или несколькими записями, представляющими модули приложения, и вызываемым каталогом метаданных, META-INFкоторый содержит один или несколько дескрипторов развертывания.

Модуль

Разработчики могут встраивать различные артефакты в файл EAR для развертывания серверами приложений:

  • Веб-модуль имеет расширение .war . Это развертываемая единица, состоящая из одного или нескольких веб-компонентов, других ресурсов и дескриптора развертывания веб-приложения . Веб-модуль содержится в иерархии каталогов и файлов в стандартном формате веб-приложения.
  • Java-классы POJO могут быть развернуты в файлах .jar .
  • Модуль Enterprise Java Bean имеет расширение .jar и в собственном META-INFкаталоге содержит дескрипторы, описывающие развернутые постоянные классы. Развернутые объектные компоненты становятся видимыми для других компонентов и, в случае удаленного экспорта, для удаленных клиентов. Бины сообщений и сеансовые компоненты доступны для удаленного доступа.
  • Модуль адаптера ресурсов имеет расширение .rar .

Изоляция класса

Большинство серверов приложений загружают классы из развернутого файла EAR как изолированное дерево загрузчиков классов Java , изолируя приложение от других приложений, но разделяя классы между развернутыми модулями. Например, развернутый файл WAR сможет создавать экземпляры классов, определенных в файле JAR, который также был включен в содержащий файл EAR, но не обязательно те, которые находятся в файлах JAR в других файлах EAR. Одна из основных причин такого поведения - обеспечить полное разделение между приложениями, использующими статические синглтоны (например, Log4J), что в противном случае могло бы запутать конфигурацию между отдельными приложениями. Это также позволяет развертывать одновременно разные версии приложений и библиотек.

В JBoss серверов приложений до версии 5 были примечательны тем , что он не изолят развернутых компонентов. Веб-приложение, развернутое в одном файле EAR, будет иметь доступ к классам в других файлах EAR и WAR. Это несколько противоречивая политика. Unified Загрузчик классов конструкция уменьшает накладные расходы связи между работающими приложениями, так как данные класса могут быть разделены посредством ссылки или простых копий. Это также позволяет разработчикам избежать понимания проблем, которые может создать дерево загрузчиков классов. Однако это предотвращает развертывание разных версий зависимых библиотек в отдельных приложениях. JBoss 4.0.2 переключился на иерархический загрузчик классов, но в версии 4.0.3 он вернулся к унифицированному загрузчику классов по причинам обратной совместимости. Теперь есть опция конфигурации, позволяющая изменить это поведение. JBoss 5.x, 6.x и 7.x больше не используют Unified Classloading.

Каталог META-INF

META-INFКаталог содержит , по меньшей мере, application.xmlдескриптор развертывания, известный как дескрипторе развертывания Java EE . Он содержит следующие объекты XML:

  • icon, который определяет расположение изображений, представляющих приложение. Делается подразделение на small-iconи large-icon.
  • display-name, который идентифицирует приложение
  • description
  • moduleЭлемент для каждого модуля в архиве
  • Ноль или более security-roleэлементов для ролей глобальной безопасности в приложении

Каждый moduleэлемент содержит ejb, webили javaэлемент , который описывает отдельные модули внутри приложения. Веб-модули также предоставляют, context-rootкоторый идентифицирует веб-модуль по его URL-адресу.

Рядом с дескриптором развертывания Jakarta EE может быть ноль или более дескрипторов развертывания среды выполнения . Они используются для настройки параметров Jakarta EE, зависящих от реализации.

Смотрите также

Внешние ссылки