EAR (формат файла)

редактировать
Enterprise Archive
Расширение имени файла .ear
РазработаноSun Microsystems
Тип форматафайловый архив, сжатие данных
Расширенный изJAR

EAR (Enterprise Application aRchive ) - это формат файла, используемый Java EE для упаковки одного или нескольких модулей в один архив, чтобы развертывание различных модулей на сервер приложений происходит одновременно и согласованно. Он также содержит файлы XML, называемые дескрипторами развертывания, которые описывают, как развертывать модули.

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

Содержание
  • 1 Файловая структура
    • 1.1 Модуль
    • 1.2 Изоляция класса
    • 1.3 Каталог META-INF
  • 2 См. Также
  • 3 Внешние ссылки
Файловая структура

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

Модуль

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

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

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

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

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

Каталог META-INF

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

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

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

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

См. Также
Внешние ссылки
Последняя правка сделана 2021-05-18 14:10:24
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте