Java Platform, Enterprise Edition (Java EE) 8
Учебник по Java EE

Назад Вперёд Содержание

Упаковка Enterprise-бинов

В этом разделе объясняется, как Enterprise-бины могут быть упакованы в модули EJB JAR или WAR. Он включает в себя следующие разделы:

Упаковка Enterprise-бинов в модули EJB JAR

Файл EJB JAR переносим и может использоваться в различных приложениях.

Чтобы скомпоновать приложение Java EE, упакуйте его в один или несколько модулей, таких как файлы EJB JAR или EAR-файл. При развёртывании EAR-файла, содержащего файл EJB JAR Enterprise-бина, Enterprise-бин также развёртывается на GlassFish Server. Вы также можете развернуть EJB JAR, который не содержится в EAR-файле. На рисунке 5-2 показано содержимое файла EJB JAR.

Рисунок 5-2. Структура корпоративного JAR-компонента

Диаграмма, показывающая структуру и содержимое JAR-файла Enterprise-бина.

Упаковка Enterprise-бинов в модули WAR

Enterprise-бины часто предоставляют бизнес-логику веб-приложения. В этих случаях упаковка Enterprise-бина в модуль WAR веб-приложения упрощает развёртывание и организацию приложения. Enterprise-бины могут быть упакованы в модуль WAR как файлы классов Java или в JAR-файл, входящий в состав модуля WAR.

Чтобы включить файлы классов Enterprise-бина в модуль WAR, файлы классов должны находиться в каталоге WEB-INF/classes.

Чтобы включить JAR-файл, содержащий Enterprise-бины, в модуль WAR, добавьте JAR в каталог WEB-INF/lib модуля WAR.

Модули WAR, содержащие Enterprise-бины, не требуют дескриптора развёртывания ejb-jar.xml. Если приложение использует ejb-jar.xml, оно должно находиться в каталоге WEB-INF модуля WAR.

JAR-файлы, содержащие классы Enterprise-бинов, упакованные в модуле WAR, не считаются файлами EJB JAR, даже если JAR-файл в целом соответствует формату файла EJB JAR. Компоненты EJB, содержащиеся в JAR-файле, семантически эквивалентны компонентам EJB, расположенным в каталоге WEB-INF/classes модуля WAR, а пространство имён среды всех компонентов EJB распространяется на модуль WAR.

Для примера предположим, что веб-приложение состоит из Enterprise-бина корзины покупок, Enterprise-бина обработки кредитных карт и внешнего интерфейса сервлета Java. Компонент корзины покупок предоставляет локальное представление без интерфейса и определяется следующим образом:

package com.example.cart;

@Stateless
public class CartBean { ... }

Компонент обработки кредитной карты упакован в свой собственный JAR-файл cc.jar, предоставляет локальное представление без интерфейса и определяется следующим образом:

package com.example.cc;

@Stateless
public class CreditCardBean { ... }

Сервлет com.example.web.StoreServlet обрабатывает веб-интерфейс и использует как CartBean, так и CreditCardBean. Компоновка модуля WAR для этого приложения выглядит следующим образом:

WEB-INF/classes/com/example/cart/CartBean.class
WEB-INF/classes/com/example/web/StoreServlet
WEB-INF/lib/cc.jar
WEB-INF/ejb-jar.xml
WEB-INF/web.xml

Назад Вперёд Содержание
Логотип Oracle  Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены. Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)