Создание и запуск клиента приложения на сервере GlassFish

В данном руководстве показано, как создать простой клиент приложения и выполнить доступ к компоненту Enterprise JavaBean (EJB), развернутому на сервере 3-й версии GlassFish. В этом руководстве мы начнем с создания корпоративного приложения, содержащего простой сеансовый компонент, и проекта библиотеки классов Java, содержащей удаленный интерфейс для этого сеансового компонента. Затем мы создадим клиент приложения, выполняющий доступ к сеансовому компоненту через удаленный интерфейс в библиотеке классов. Файл JAR библиотеки классов, содержащий удаленный интерфейс, добавляется к пути класса корпоративного приложения и клиенту приложения.

Упражнения по темам руководства

Содержимое на этой странице применимо к IDE NetBeans 7.2, 7.3, 7.4 и 8.0

Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.

Программное обеспечение или материал Требуемая версия
IDE NetBeans Версия 7.2, 7.3, 7.4, 8.0, Java EE
Комплект для разработчика на языке Java (JDK) версия 7 или 8
GlassFish Server Open Source Edition 3.1.2.2 3.x, 4.x

Предпосылки

Предполагается, что читатель обладает базовыми знаниями по следующим технологиям или опытом программирования с их использованием:

  • Программирование на Java
  • IDE NetBeans

Можно загрузить готовый проект в виде архива ZIP. If you are using GlassFish 3.0 use the zip archive for the IDE NetBeans 6.8 project.

Создание библиотеки классов Java

В данном разделе мы создадим проект библиотеки классов Java, который будет содержать удаленный интерфейс для EJB. Этот удаленный интерфейс ведет себя как интерфейс API для EJB, используемый клиентами для связи с EJB.

Файл JAR библиотеки легко разослать всем клиентам, которым может потребоваться вызвать EJB. Клиентам, которым нужен доступ к EJB, достаточно добавить файл JAR библиотеки к пути классов проекта. В реализации EJB тот же файл JAR используется для реализации интерфейса.

  1. Выберите "Файл > Новый проект"(Ctrl-Shift-N; ⌘-Shift-N в Mac), затем выберите "Библиотека классов Java" в категории "Java". Нажмите кнопку "Далее".
  2. Введите EJBRemoteInterface в качестве имени проекта. Нажмите кнопку "Завершить".
снимок мастера создания проектов библиотк классов

После нажатия кнопки "Готово" среда IDE создаст проект библиотеки классов Java. В следующем разделе мы создадим корпоративное приложение Java EE и модуль EJB. Затем мы используем мастер для создания сеансного компонента и удаленного интерфейса к этому сеансовому компоненту в проекте библиотеки классов. Клиент приложения выполнит доступ к сеансовому компоненту сеанса через интерфейс в библиотеке классов.

Создание модуля EJB

В этом разделе мы создадим корпоративное приложение и модуль EJB. При создании компонента EJB его следует создать как часть корпоративного приложения, сжать в архив EAR и развернуть на сервере.

Создание приложения уровня предприятия

В этом разделе вы будете использовать мастер создания проектов для создания корпоративного приложения, содержащего модуль EJB. Данный мастер предоставляет возможность создать модуль EJB при создании приложения.

  1. Выберите File ("Файл") > New Project ("Создать проект") и затем выберите Enterprise Application ("Корпоративное приложение") в категории Java EE. Нажмите кнопку "Далее".
  2. Введите EntAppEJB как имя проекта. Нажмите кнопку "Далее".
  3. Выберите GlassFish Server в качестве сервера.
  4. Убедитесь, что выбрано Create EJB Module ("Создать модуль EJB") и отмените выбор Create Web Application ("Создать модуль веб-приложения"). Нажмите кнопку "Завершить".
моментальный снимок мастера создания приложений уровня предприятия

При нажатии кнопки "Готово" среда IDE создаст корпоративное приложение и модуль EJB. В окне 'Проекты' видно, что проект модуля EJB указан в узле Java EE Modules проекта приложения корпоративного уровня.

снимок окна 'Проекты' с открытыми проектами

Можно заметить, что теперь в окне проектов перечислены три типа проектов: библиотека классов, корпоративное приложение и модуль EJB.

Создание компонента сеанса

В этом упражнении мы используем мастер для создания компонента сеанса в проекте модуля EJB. В этом мастере мы также создадим удаленный интерфейс для компонента сеанса в проекте библиотеки классов.

  1. Щелкните правой кнопкой мыши проект модуля EJB и выберите New ("Создать") > Session Bean ("Сеансный компонент").
  2. Введите MySession в поле EJB Name ("Имя EJB").
  3. В поле Package ("Пакет") введите ejb.
  4. Выберите Stateless ("Без поддержки состояния") в Session Type ("Тип сеанса").
  5. Выберите параметр Remote ("Удаленный") в Create Interface ("Создать интерфейс").
  6. Выберите проект EJBRemoteInterface из раскрывающегося списка. Нажмите кнопку "Завершить".
снимок мастера создания компонентов сеансов

При нажатии "Готово" среда IDE создает сеансовый компонент в пакете ejb модуля EJB и открывает класс в редакторе. Можно увидеть, что MySession реализует интерфейс MySessionRemote и что файл JAR EJBRemoteInterface был добавлен как библиотека модуля EJB.

Мастер также создает удаленный интерфейс под названием MySessionRemote в пакете ejb проекта EJBRemoteInterface. IDE автоматически добавляет библиотеку интерфейса API Java EE 6, необходимую интерфейсу EJB.

снимок окна 'Проекты', в котором отображаются компонент сеанса и удаленный интерфейс

Добавление бизнес-метода

В этом упражнении мы создадим простой бизнес-метод в сеансовом компоненте, возвращающий строку.

  1. Щелкните правой кнопкой мыши редактор MySession и выберите Insert Code ("Вставить код") (Alt-Insert; Ctrl-I на Mac), затем выберите Add Business Method ("Добавить бизнес-метод").
  2. Введите getResult в поле Method Name ("Имя метода") и String ("Строка") в поле Return Type ("Тип возврата"). Нажмите кнопку "ОК".
  3. Внесите нижеприведенные изменения, чтобы метод getResult возвращал строку.

    Класс должен выглядеть следующим образом:

    @Stateless
    public class MySession implements MySessionRemote {
    
        public String getResult() {
            return "This is My Session Bean";
        }
    }
  4. Сохраните изменения.

Теперь у нас есть корпоративное приложение с простым компонентом EJB, предоставляемым через удаленный интерфейс. У нас также имеется независимая библиотека классов, содержащая интерфейс EJB, которую можно разослать другим разработчикам. Разработчики могут добавлять библиотеку к своим проектам, если им нужна связь с EJB, предоставляемым через удаленный интерфейс, но не нужны исходные коды для EJB. При изменении кода для EJB достаточно распространить JAR обновленной библиотеки классов, если изменения затронули любой из интерфейсов.

При использовании диалогового окна "Добавить бизнес-метод" среда IDE автоматически включает метод в удаленный интерфейс.

Развертывание корпоративного приложения

Теперь корпоративное приложение можно собрать и запустить. При запуске приложения среда IDE развернет архив EAR на сервере.

  1. Щелкните правой кнопкой мыши корпоративное приложение EntAppEJB и выберите Deploy ("Развернуть").

После выбора "Развернуть" среда IDE собирает корпоративное приложение и разворачивает архив EAR на сервере. Если взглянуть в окно Files ("Файлы"), можно заметить, что файл JAR EJBRemoteInterface развернут вместе с приложением.

Если развернуть узел 'Приложения' сервера GlassFish в окне 'Службы', можно увидеть, что компонент EntAppEJB развернут.

Создание клиента приложения

В этом разделе мы создадим клиент корпоративного приложения. При создании клиента приложения проекту нужна библиотека классов Java EJBRemoteInterface в качестве библиотеки, чтобы установить ссылку на EJB.

При запуске корпоративного приложения среда IDE пакетирует клиент приложений и файл JAR библиотеки классов Java в архив EAR. Файлы JAR библиотеки должны быть упакованы в файл EAR вместе с клиентом приложения, если необходим доступ к ним из клиента приложения.

Создание приложения уровня предприятия

В этом упражнении мы используем мастер создания проектов, чтобы создать проект клиента приложения. Если развертывание выполняется на сервере GlassFish 3.1 или 4.x, клиент приложения можно создать и запустить как отдельный проект. Клиент приложения больше не надо будет развертывать и запускать как часть корпоративного приложения.

Примечание. При развертывании на GlassFish 3.0.1, необходимо создать клиентское приложение в виде модуля в проекте корпоративного приложения и запустить корпоративное приложение.

  1. Выберите Файл > Создать проект и затем выберите "Клиент корпоративного приложения" в категории Java EE. Нажмите кнопку "Далее".
  2. Введите EntAppClient в поле Project Name ("Имя проекта"). Нажмите кнопку "Далее".
  3. Выберите GlassFish Server в качестве сервера. Нажмите кнопку "Завершить".

    Обратите внимание, что добавлять проект к корпоративному приложению необязательно.

снимок создания клиента приложения, выбранного в мастере создания проектов

При нажатии "Готово" IDE создаст проект клиента приложения и откроет Main.java в редакторе.

Добавление библиотеки классов

Теперь следует добавить библиотеку классов, содержащую удаленный интерфейс, к пути классов проекта, чтобы позволить клиенту приложения ссылаться на EJB. Проект библиотеки классов теперь открыт, так что диалоговое окно "Вызвать компонент корпоративного уровня" теперь можно использовать для помощи в генерировании кода с целью вызова EJB.

Если проект библиотеки классов не открыт, вы можете добавить библиотеку классов для проекта в окне 'Проекты', щелкнув правой кнопкой мыши узел 'Библиотеки' узла и выполнив поиск файла JAR проекта EJBRemoteInterface.

  1. Разверните узел Source Packages ("Пакеты исходного кода") проекта EntAppClient и откройте Main.java в редакторе.
  2. Щелкните правой кнопкой мыши исходный код и выберите Insert Code ("Вставить код") (Alt-Insert; Ctrl-I на Mac), затем выберите Call Enterprise Bean ("Вызвать компонент корпоративного уровня"), чтобы открыть диалоговое окно вызова компонента корпоративного уровня.
  3. Выберите узел проекта EntAppEJB и затем выберите MySession. Нажмите кнопку "ОК".
    моментальный снимок диалогового окна 'Вызвать компонент корпоративного уровня'

    В данном диалоговом окне автоматически выбирается тип интерфейса Remote ("Удаленный"). При нажатии кнопки OK среда IDE добавит следующую аннотацию к Main.java.

    @EJB
    private static MySessionRemote mySession;

    Среда IDE также автоматически добавит EJBRemoteInterface как библиотеку проекта.

  4. Измените главный метод извлечения строки метода getResult посредством интерфейса MySessionRemote. Сохраните изменения.
    public static void main(String[] args) {
            System.err.println("result = " + mySession.getResult());
        }

Запуск клиента приложения

Теперь клиент приложения можно запустить, собрав и развернув проект EntAppClient.

  1. Щелкните правой кнопкой мыши проект EntAppClient в окне Projects ("Проекты") и выберите Run ("Запустить").

    Кроме того, вы можете расширить исходный пакет и щелкнуть правой кнопкой мыши класс Main.java и выбрать 'Выполнить файл'.

После выбора Run ("Запустить") IDE собирает проект клиента приложения и разворачивает архив JAR на сервере. Сообщение от клиента приложения можно увидеть в окне вывода.

Снимок окна вывода с отображением результата

Если необходимо создать дополнительные EJB, можно просто добавить новые удаленные интерфейсы EJB к проекту библиотеки классов EJBRemoteInterface.


Что дальше?

For more information about using IDE NetBeans to develop Java EE applications, see the following resources:

Дополнительные сведения о разработке компонентов корпоративного уровня EJB можно найти в Руководстве по Java EE 6.

To send comments and suggestions, get support, and keep informed on the latest developments on the IDE NetBeans Java EE development features, join the nbj2ee mailing list.

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2018, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo