package com.example.cart;
@Stateless
public class CartBean { ... }| Java Platform, Enterprise Edition (Java EE) 8 Учебник по Java EE | 
| Назад | Вперёд | Содержание | 
В этом разделе объясняется, как Enterprise-бины могут быть упакованы в модули EJB JAR или WAR. Он включает в себя следующие разделы:
Файл EJB JAR переносим и может использоваться в различных приложениях.
Чтобы скомпоновать приложение Java EE, упакуйте его в один или несколько модулей, таких как файлы EJB JAR или EAR-файл. При развёртывании EAR-файла, содержащего файл EJB JAR Enterprise-бина, Enterprise-бин также развёртывается на GlassFish Server. Вы также можете развернуть EJB JAR, который не содержится в EAR-файле. На рисунке 5-2 показано содержимое файла EJB JAR.

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| Назад | Вперёд | Содержание | 
 Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены.
	
Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)
 			
		Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены.
	
Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)