Читаем Изучаем 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;

··}

}

<p>Упаковка</p>

Как и большинство компонентов 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.

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

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

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

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

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных