Java Platform, Enterprise Edition (Java EE) 8
Учебник по Java EE

Назад Вперёд Содержание

Создание Enterprise-бина

В нашем примере Enterprise-бин — это сессионный компонент без сохранения состояния ConverterBean. Исходный код для ConverterBean находится в каталоге tut-install/examples/ejb/converter/src/main/java/.

Создание ConverterBean требует следующих шагов:

  1. Кодирование класса реализации компонента (предоставляется исходный код)

  2. Компиляция исходного кода

Кодирование класса Enterprise-бина

Класс EJB для этого примера — ConverterBean. Этот класс реализует два бизнес-метода: dollarToYen и yenToEuro. Поскольку класс Enterprise-бина не реализует бизнес-интерфейс, Enterprise-бин предоставляет локальное представление без интерфейса. Публичные методы в классе Enterprise-бина доступны клиентам, которые получают ссылку на ConverterBean. Исходный код для класса ConverterBean выглядит следующим образом:

package javaeetutorial.converter.ejb;

import java.math.BigDecimal;
import javax.ejb.*;

@Stateless
public class ConverterBean {
    private BigDecimal yenRate = new BigDecimal("83.0602");
    private BigDecimal euroRate = new BigDecimal("0.0093016");

    public BigDecimal dollarToYen(BigDecimal dollars) {
        BigDecimal result = dollars.multiply(yenRate);
        return result.setScale(2, BigDecimal.ROUND_UP);
    }

    public BigDecimal yenToEuro(BigDecimal yen) {
        BigDecimal result = yen.multiply(euroRate);
        return result.setScale(2, BigDecimal.ROUND_UP);
    }
}

Обратите внимание на аннотацию @Stateless, которая декорирует класс Enterprise-бина. Эта аннотация даёт контейнеру понять, что ConverterBean является сессионным компонентом без сохранения состояния.

Создание веб-клиента converter

Веб-клиент содержится в следующем классе сервлетов в каталоге tut-install/examples/ejb/converter/src/main/java/:

converter/web/ConverterServlet.java

Сервлет Java — это веб-компонент, который отвечает на запросы HTTP.

Класс ConverterServlet использует инъецирование зависимостей для получения ссылки на ConverterBean. Аннотация javax.ejb.EJB добавляется в объявление приватной переменной-члена converter типа ConverterBean. ConverterBean предоставляет локальное представление без интерфейса, поэтому класс реализации Enterprise-бина является типом переменной:

@WebServlet(urlPatterns="/")
public class ConverterServlet extends HttpServlet {
  @EJB
  ConverterBean converter;
  ...
}

Когда пользователь вводит сумму, которая будет конвертирована в иены и евро, сумма извлекается из параметров запроса. Тогда вызываются методы ConverterBean.dollarToYen и ConverterBean.yenToEuro:

...
try {
  String amount = request.getParameter("amount");
  if (amount != null && amount.length()> 0) {
    // конвертация суммы к типу BigDecimal из полученного в параметре значения
    BigDecimal d = new BigDecimal(amount);
    // вызов метода ConverterBean.dollarToYen() для получения суммы
    // в йенах
    BigDecimal yenAmount = converter.dollarToYen(d);

    // вызов метода ConverterBean.yenToEuro() для получения суммы
    // в евро
    BigDecimal euroAmount = converter.yenToEuro(yenAmount);
    ...
  }
  ...
}

Результаты отображаются пользователю.

Запуск converter

Теперь вы готовы скомпилировать класс Enterprise-бина (ConverterBean.java) и класс сервлета (ConverterServlet.java) и упаковать скомпилированные классы в WAR-файл. Вы можете использовать IDE NetBeans или Maven для сборки, упаковки, развёртывания и запуска примера converter.

Здесь рассматриваются следующие темы:

Запуск converter с IDE NetBeans

  1. Удостоверьтесь, чтобы GlassFish Server был запущен (см. Запуск и остановка сервера GlassFish).

  2. В меню «Файл» выберите «Открыть проект».

  3. В диалоговом окне «Открыть проект» перейдите к:

    tut-install/examples/ejb
  4. Выберите каталог converter.

  5. Нажмите Открыть проект.

  6. На вкладке «Проекты» кликните правой кнопкой мыши проект converter и выберите «Сборка».

  7. Откройте веб-браузер по следующему URL:

    http://localhost:8080/converter
  8. На странице Servlet ConverterServlet введите 100 в поле и нажмите «Отправить».

    Откроется вторая страница, показывающая преобразованные значения.

Запуск converter с использованием Maven

  1. Удостоверьтесь, чтобы GlassFish Server был запущен (см. Запуск и остановка сервера GlassFish).

  2. В окне терминала перейдите в:

    tut-install/examples/ejb/converter/
  3. Введите следующую команду:

    mvn install

    Эта команда компилирует исходные файлы для Enterprise-бина и сервлета, упаковывает проект в модуль WAR (converter.war) и развёртывает WAR на сервере. Для получения дополнительной информации о Maven см. Сборка примеров.

  4. Откройте веб-браузер по следующему URL:

    http://localhost:8080/converter
  5. На странице Servlet ConverterServlet введите 100 в поле и нажмите «Отправить».

    Откроется вторая страница, показывающая преобразованные значения.


Назад Вперёд Содержание
Логотип Oracle  Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены. Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)