Читаем Изучаем Java EE 7 полностью

·········http://xmlns.jcp.org/xml/ns/javaee/ejb-jar_3_2.xsd"

·········version="3.2">

··

····

······ItemEJB

······

········currencyEntry

········java.lang.String

········Euros

······

······

········changeRateEntry

········java.lang.Float

········0.80

······

····

··

Теперь, когда параметры приложения располагаются в дескрипторе развертывания, ItemEJB может использовать внедрение зависимостей, чтобы извлечь значение каждой записи окружения. В листинге 7.21 @Resource(name = "currencyEntry") внедряет значение currencyEntry в атрибут currency. Следует отметить, что типы данных записи окружения и внедряемой переменной должны быть совместимыми; в противном случае контейнер сгенерирует исключение.


Листинг 7.21. ItemEJB, использующий записи окружения

@Stateless

public class ItemEJB {

··@Resource(name = "currencyEntry")

··private String currency;

··@Resource(name = "changeRateEntry")

··private Float changeRate;


··public Item convertPrice(Item item) {

····item.setPrice(item.getPrice() * changeRate);

····item.setCurrency(currency);

····return item;

··}

}

Упаковка

Как и большинство компонентов Java EE (сервлеты, JSF-страницы, веб-службы и т. д.), EJB-компоненты необходимо упаковать, прежде чем развертывать их в контейнере времени выполнения. В том же самом архиве обычно будет присутствовать класс корпоративного EJB-компонента, его интерфейсы, любые необходимые суперклассы или суперинтерфейсы, исключения, вспомогательные классы и необязательный дескриптор развертывания (ejb-jar.xml). Упаковав эти артефакты в файл с расширением. jar, вы сможете произвести их развертывание непосредственно в контейнере. Еще один вариант заключается в том, что вы также можете встроить файл с расширением. jar в файл с расширением. ear, а затем произвести его развертывание.

Файл с расширением. ear используется для того, чтобы упаковать один или несколько модулей (EJB-файлов с расширением. jar или веб-приложений) в один архив, благодаря чему развертывание на сервере приложений будет происходить одновременно и согласованно. Например, как показано на рис. 7.7, если вам потребуется произвести развертывание веб-приложения, то, возможно, вы захотите упаковать свои EJB-компоненты и сущности в отдельные файлы с расширением. jar, свои сервлеты — в файл с расширением. war, а затем все это — в файл с расширением. ear. Произведите развертывание EAR-файла на сервере приложений, и вы сможете манипулировать сущностями из сервлета с использованием соответствующего EJB-компонента.


Рис. 7.7. Упаковка EJB-компонентов


С выходом EJB 3.1 появилась возможность упаковать EJB Lite непосредственно в веб-модуль (WAR-файл). Справа на рис. 7.7 сервлет, EJB-компонент и сущность упакованы в один и тот же WAR-файл со всеми дескрипторами развертывания. Обратите внимание в EJB-модуле на то, что дескриптор развертывания располагается в файлах META-INF/ejb-jar.xml и WEB-INF/ejb-jar.xml. EJB Lite можно упаковать непосредственно в WAR- или JAR-файл. Если у вас возникнет необходимость использовать полную спецификацию EJB (например, удаленный интерфейс, JMS, асинхронные вызовы…), то придется упаковать все в файл с расширением. jar, а не. war.

Развертывание EJB-компонента

Сессионные EJB-компоненты — это компоненты, управляемые контейнерами, в чем и заключается их преимущество. Контейнер сам взаимодействует со всевозможными службами (управление транзакциями, управление жизненным циклом, асинхронность, перехватчики и т. д.), позволяя вам сосредоточиться на бизнес-коде. Недостаток состоит в том, что вам всегда нужно выполнять свои EJB-компоненты в контейнере. Исторически сложилось так, что эти контейнеры функционировали в отдельном процессе, из-за чего тестирование было немного утомительным занятием. Вам приходилось запускать свой контейнер (также называемый сервером), упаковывать свои EJB-компоненты, развертывать и тестировать их и в конце концов останавливать сервер… чтобы снова запустить его позднее.

Перейти на страницу:

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT