EAR (формат файла)
Расширение имени файла | .ухо |
---|---|
Тип интернет-СМИ | приложение/java-архив |
Разработано | Сан Микросистемс |
Тип формата | файловый архив , сжатие данных |
Расширено с | БАНКА |
EAR ( корпоративного приложения приложение и архив для упаковки одного или нескольких модулей в один архив , ) — это формат файла, используемый Jakarta EE чтобы развертывание различных модулей на сервере приложений происходило одновременно и согласованно. Он также содержит XML- файлы, называемые дескрипторами развертывания , которые описывают, как развертывать модули.
Ant , Maven или Gradle можно использовать для создания файлов EAR.
Структура файла
[ редактировать ]Файл EAR — это стандартный файл JAR (и, следовательно, Zip- файл) с расширением .ear, с одной или несколькими записями, представляющими модули приложения, и каталогом метаданных, называемым META-INF
который содержит один или несколько дескрипторов развертывания.
Модуль
[ редактировать ]Разработчики могут встраивать в файл EAR различные артефакты для развертывания серверами приложений:
- Веб-модуль имеет расширение .war . Это развертываемая единица, состоящая из одного или нескольких веб-компонентов, других ресурсов и веб-приложения дескриптора развертывания . Веб-модуль содержится в иерархии каталогов и файлов стандартного формата веб-приложения.
- Классы POJO Java можно развертывать в .jar . файлах
- Модуль Enterprise Java Bean имеет расширение .jar и содержит собственные
META-INF
дескрипторы каталогов, описывающие развернутые постоянные классы. Развернутые объектные компоненты становятся видимыми для других компонентов и, в случае удаленного экспорта, для удаленных клиентов. Компоненты сообщений и сеансовые компоненты доступны для удаленного доступа. - Модуль адаптера ресурсов имеет расширение .rar .
Изоляция классов
[ редактировать ]Большинство серверов приложений загружают классы из развернутого файла EAR как изолированное дерево загрузчиков классов Java , изолируя приложение от других приложений, но разделяя классы между развернутыми модулями. Например, развернутый файл WAR сможет создавать экземпляры классов, определенных в файле JAR, которые также были включены в содержащий его файл EAR, но не обязательно те, которые есть в файлах JAR в других файлах EAR. Одной из ключевых причин такого поведения является обеспечение полного разделения между приложениями, использующими статические синглтоны (например, Log4J), что в противном случае могло бы запутать конфигурацию между отдельными приложениями. Это также позволяет параллельно развертывать различные версии приложений и библиотек.
Серверы приложений JBoss до версии 5 отличались тем, что не изолировали развернутые компоненты. Веб-приложение, развернутое в одном файле EAR, будет иметь доступ к классам в других файлах EAR и WAR. Это несколько спорная политика. Конструкция Unified Classloader снижает накладные расходы на связь между запущенными приложениями, поскольку данные классов могут передаваться по ссылке или простыми копиями. Это также позволяет разработчикам избежать необходимости понимать проблемы, которые может создать дерево загрузчиков классов. Однако это предотвращает развертывание разных версий зависимых библиотек в отдельных приложениях. JBoss 4.0.2 переключился на иерархический загрузчик классов, но в версии 4.0.3 он вернулся к унифицированному загрузчику классов по соображениям обратной совместимости. Теперь есть опция конфигурации, позволяющая изменить это поведение. JBoss 5.x, 6.x и 7.x больше не использует унифицированную загрузку классов.
Каталог МЕТА-INF
[ редактировать ]The 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, зависящих от реализации.
См. также
[ редактировать ]- Корпоративное программное обеспечение
- ВОЙНА (формат файла)
- JAR (формат файла)
- JAR ад
- Дескриптор развертывания