Опубликован: 18.03.2010 | Уровень: специалист | Доступ: платный
Лекция 3:

Технология Enterprise Java Beans. Часть 1

Создание проектов

Для компонентов EJB следует создать проект EJB,аналогичный проектам из предыдущих примеров. Назовем его ShoppingBasketBean.Для тестовых примеров создаются обычные Java -проекты, к ним еще подключаются библиотеки jbossall-client.jar и jboss-j2ee.jar.

Динамический веб-проект

Рис. 3.46. Динамический веб-проект

Для веб-приложения, следует выбрать тип проекта Web -> Dynamic Web Project (Рис. 3.46). Далее на следующем окне в качестве Target Runtime выбираем JBoss 4.0EAR (Enterprise Application Project) пока не добавляем (можно, конечно, было вначале создать EAR -проект -это ничего не меняет). После этого будет создан проект для динамического веб-приложение - то что нам и нужно.

Структура веб-приложения

Рис. 3.47. Структура веб-приложения

В проекте будут созданы два основных каталога - src и WebContent. В src следует помещать все Java -классы, используемые в веб-приложении - сервлеты, фильтры и другие классы. Фильтр поместим в пакет webclient.filter, а сервлеты в пакет webclient.servlets (Рис. 3.47). JSP страницы и файл конфигурации веб-приложения web.xml помещаюся в каталог WebContent. Помимо этого в этом каталоге создадим каталог img, в котором поместим фотографии пачек сигарет, доступных к продаже в магазине. Страницы JSP помещаем в каталог WebContent, фотографии сигарет в каталог img, файл web.xml в каталог WEB-INF.

Теперь осталось создать EAR -проект - это такой тип проекта, в который можно подключить несколько различных проектов EJB,а также разнообразные клиентские проекты, после этого при развертке этого проекта, он также корректно развернет все проекты, которые к нему подключены (по крайней мере так предполагается). Создаем проект J2EE -> Enterprise Application Project. Опять в качестве Target Runtime выбираем JBoss 4.0.

Подключение проектов к EAR-проекту

Рис. 3.48. Подключение проектов к EAR-проекту

На последнем этапе следует подключить в EAR -проекту два наших проекта - EJB и веб-проект (Рис. 3.48).

Теперь, когда все проекты готовы, следую подключить EAR -проект к JBoss ( Servers -> JBoss -> Add and Remove Projects ), причем входящие в него проекты подключать не надо, иначе будет ошибка.

Если все было сделано правильно, то при запуске JBoss оба проекта будут корректно развернуты на сервере JBoss, а веб-приложение будет доступно по адресу http : //localhost :8080/ ShoppingBasketWebClient (последняя часть URL соответствует имени проекта). Скриншоты веб-приложения уже приводились при обсуждении страниц JSP и здесь они приводиться не будут.

Советы по отладке

Последний пример уже был достаточно сложен. Возможность отладки приложения становится все нужнее. К счастью Eclipse-WTP дает возможность как отладки компонентов, развернутых на сервере приложений, так и отладки JSP -страниц и сервлетов. Для этого надо при запуске сервера приложений (в нашем случае JBoss) запустить его не при помощи команды Run, а при помощи команды Debug.

Запуск сервера в режиме Debug

Рис. 3.49. Запуск сервера в режиме Debug

Запуск сервера в режиме Debug показан на Рис. 3.49. После этого можно выполнять отладку как JSP -страниц, так и компонентов.

Установка breakpoint'a

Рис. 50. Установка breakpoint'a

Breakpoint как для JSP -страниц, так и для Java -классов, устанавливается посредством щелчка правой кнопкой мыши рядом со строчкой кода. В меню можно выбрать операцию с breakpoint - установить, удалить, сделать неактивным. Теперь перед выполнением этой строки кода будет произведена остановка.

Отлаживать лучше в Debug -перспективе - Window -> Open perspective -> Debug. В этой перспективе есть все возможности для отладки - Watch, Breakpoints, вычисление различных выражений и т.д. Для более подробного изучения процесса отладки в Eclipse следует обратиться к документации по нему.

Недостатки данного примера

У примера можно выделить несколько недостатков. Перечислим некоторые из них:

  • Отсутствие дизайна веб-приложения - это в курсе по веб-дизайну, либо посетите сайт студии Артемия Лебедева http://www. artlebedev.ru - там все написано;
  • Подсчет стоимости заказа вынесен на страницу JSP - это плохо, так как страница JSP отвечает, по-хорошему, только за представление информации, а бизнес-логика, свойственная компонентам EJB,в ней должна отсутствовать;
  • При добавлении товара в корзину или запроса содержимого заказа не проверяется факт существования товара или заказа в базе данных;
  • При формировании страницы со всеми заказами, на каждый товар идет запрос к базе данных (посредством метода Commodity CommodityListBean.getCommodityByld (int id)) - это крайне неэкономично;
  • При формировании корзины с товарами, на каждый товар опять запрос к базе данных (посредством метода Commodity CommodityListBean.getCommodityByld(int id)) - тоже неэкономично;
  • Нет возможности отследить, что кто-то вошел в систему под одним именем с различных компьютеров;
  • SQL -запросы выполняются непосредственно из кода сеансовых компонентов, что не очень удобно.

Эти недостатки будут, по возможности, исправлены в примере из следующего раздела. В нем рассматриваются объектные компоненты, которые позволяют сильно упростить разработку

Антон Зубеков
Антон Зубеков

Здравствуйте, подскажите пожалуйста где можно достать материалы по курсу Кросс-платформенные и многозвенные технологии, о которых говориться, к примеру, в Лекции 2. Пример "Служба мгновенных сообщений"

Ярославй Грива
Ярославй Грива
Россия, г. Санкт-Петербург
Ольга Малых
Ольга Малых
Россия, Казань, Университет управления "ТИСБИ"