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

@Local(ItemLocal.class)

@LocalBean

public class ItemEJB implements ItemLocal, ItemRemote {

··//…

}

После развертывания контейнер сгенерирует три JNDI-имени, чтобы внешний компонент смог получить доступ к ItemEJB, используя следующие глобальные JNDI-имена:

java: global/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemRemote

java: global/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemLocal

java: global/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemEJB

Следует отметить, что если бы ItemEJB был развернут в файле с расширением EAR (например, myapplication.ear), то вам пришлось бы указать в <имя приложения> следующее:

java: global/myapplication/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemRemote

java: global/myapplication/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemLocal

java: global/myapplication/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemEJB

Контейнер также требуется для того, чтобы сделать JNDI-имена доступными при использовании пространств имен java: app и java: module. Таким образом, компонент, развернутый в том же приложении, что и ItemEJB, сможет осуществлять его поиск с использованием следующих JNDI-имен:

java: app/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemRemote

java: app/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemLocal

java: app/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemEJB

java: module/ItemEJB!org.agoncal.book.javaee7.ItemRemote

java: module/ItemEJB!org.agoncal.book.javaee7.ItemLocal

java: module/ItemEJB!org.agoncal.book.javaee7.ItemEJB

Такое переносимое JNDI-имя применимо ко всем сессионным EJB-компонентам: без сохранения состояния, с сохранением состояния и одиночным.

<p>EJB-компоненты без сохранения состояния</p>

EJB-компоненты без сохранения состояния — это самые популярные среди разработчиков приложений Java EE сессионные EJB-компоненты. Они простые, мощные, эффективные. Кроме того, они позволяют решать общую задачу, которая заключается в обработке бизнес-данных без сохранения состояния. Что означает словосочетание «без сохранения состояния»? Оно означает, что задача должна быть выполнена одним вызовом метода.

В качестве примера мы можем вернуться к корням объектно-ориентированного программирования, где объект инкапсулирует свое состояние и поведение. Чтобы обеспечить постоянство Book в базе данных при объектном моделировании, вы поступили бы примерно так: создали экземпляр объекта Book (с использованием ключевого слова new), задали кое-какие значения и вызвали метод, чтобы этот объект смог обеспечить свое постоянство в базе данных (book.persistToDatabase()). В приведенном далее коде вы можете видеть, что с самой первой и до последней строки объект Book вызывается несколько раз и поддерживает свое состояние:

Book book = new Book();

book.setTitle("Автостопом по Галактике");

book.setPrice(12.5F);

book.setDescription("Научно-фантастический комедийный сериал, созданный Дугласом Адамсом");

book.setIsbn("1-84023-742-2");

book.setNbOfPage(354);

book.persistToDatabase();

В архитектуре служб вы делегировали бы бизнес-логику внешней службе. Службы без сохранения состояния идеально подходят, когда вам необходимо выполнить задачу, с которой можно справиться одним вызовом метода (передав при этом все необходимые параметры). Службы без сохранения состояния независимы, обособленны и не требуют информации или состояния от одного запроса к другому. Таким образом, если вы возьмете предыдущий код и добавите службу без сохранения состояния, то вам потребуется создать объект Book, задать кое-какие значения, а затем воспользоваться службой без сохранения состояния для вызова метода, который обеспечит постоянство Book от его имени одним вызовом. Состояние будет поддерживать Book, а не служба без сохранения состояния:

Book book = new Book();

book.setTitle("Автостопом по Галактике");

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

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

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

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

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

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

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

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

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