| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| |
| = Создание и запуск клиента приложения на сервере GlassFish |
| :jbake-type: tutorial |
| :jbake-tags: tutorials |
| :jbake-status: published |
| :icons: font |
| :syntax: true |
| :source-highlighter: pygments |
| :toc: left |
| :toc-title: |
| :description: Создание и запуск клиента приложения на сервере GlassFish - Apache NetBeans |
| :keywords: Apache NetBeans, Tutorials, Создание и запуск клиента приложения на сервере GlassFish |
| |
| В данном руководстве показано, как создать простой клиент приложения и выполнить доступ к компоненту Enterprise JavaBean (EJB), развернутому на сервере 3-й версии GlassFish. В этом руководстве мы начнем с создания корпоративного приложения, содержащего простой сеансовый компонент, и проекта библиотеки классов Java, содержащей удаленный интерфейс для этого сеансового компонента. Затем мы создадим клиент приложения, выполняющий доступ к сеансовому компоненту через удаленный интерфейс в библиотеке классов. Файл JAR библиотеки классов, содержащий удаленный интерфейс, добавляется к пути класса корпоративного приложения и клиенту приложения. |
| |
| *Упражнения по темам руководства* |
| |
| * <<Exercise_10,Создание библиотеки классов Java >> |
| * <<Exercise_20,Создание модуля EJB>> |
| * <<Exercise_22,Создание сеансового компонента>> |
| * <<Exercise_23,Добавление бизнес-метода>> |
| * <<Exercise_24,Развертывание корпоративного приложения>> |
| * <<Exercise_30,Создание клиента приложения>> |
| * <<Exercise_32,Добавление библиотеки классов>> |
| * <<Exercise_30,Запуск клиента приложения>> |
| |
| *Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.* |
| |
| |=== |
| |Программное обеспечение или материал |Требуемая версия |
| |
| |link:https://netbeans.org/downloads/index.html[+IDE NetBeans+] |Версия 7.2, 7.3, 7.4, 8.0, Java EE |
| |
| |link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Комплект для разработчика на языке Java (JDK)+] |версия 7 или 8 |
| |
| |GlassFish Server Open Source Edition 3.1.2.2 |3.x, 4.x |
| |=== |
| |
| *Предпосылки* |
| |
| Предполагается, что читатель обладает базовыми знаниями по следующим технологиям или опытом программирования с их использованием: |
| |
| * Программирование на Java |
| * IDE NetBeans |
| |
| Можно загрузить link:https://netbeans.org/projects/samples/downloads/download/Samples/JavaEE/EntAppClientEE6.zip[+готовый проект в виде архива ZIP+]. If you are using GlassFish 3.0 use link:https://netbeans.org/projects/samples/downloads/download/NetBeans%20IDE%206.8/JavaEE/entappclient.zip[+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* в качестве имени проекта. Нажмите кнопку "Завершить". |
| |
| image::images/appclient-newclasslibrary.png[title="Мастер создания проектов библиотк классов"] |
| |
| После нажатия кнопки "Готово" среда 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 ("Создать модуль веб-приложения"). Нажмите кнопку "Завершить". |
| |
| image::images/appclient-newentappejb.png[title="Выберите Create EJB Module (Создать модуль EJB) в мастере"] |
| |
| При нажатии кнопки "Готово" среда IDE создаст корпоративное приложение и модуль EJB. В окне 'Проекты' видно, что проект модуля EJB указан в узле Java EE Modules проекта приложения корпоративного уровня. |
| |
| image::images/appclient-projects-entappejb1.png[title="В окне 'Проекты' отображаются открытые проекты"] |
| |
| Можно заметить, что теперь в окне проектов перечислены три типа проектов: библиотека классов, корпоративное приложение и модуль 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* из раскрывающегося списка. Нажмите кнопку "Завершить". |
| |
| image::images/appclient-wizard-newsessionbean.png[title="Мастер создания компонентов сеансов"] |
| |
| При нажатии "Готово" среда IDE создает сеансовый компонент в пакете ``ejb`` модуля EJB и открывает класс в редакторе. Можно увидеть, что ``MySession`` реализует интерфейс ``MySessionRemote`` и что файл JAR EJBRemoteInterface был добавлен как библиотека модуля EJB. |
| |
| Мастер также создает удаленный интерфейс под названием ``MySessionRemote`` в пакете ``ejb`` проекта EJBRemoteInterface. IDE автоматически добавляет библиотеку интерфейса API Java EE 6, необходимую интерфейсу EJB. |
| |
| image::images/appclient-projects-entappejb2.png[title="Окно 'Проекты', в котором отображаются компонент сеанса и удаленный интерфейс"] |
| |
| |
| === Добавление бизнес-метода |
| |
| В этом упражнении мы создадим простой бизнес-метод в сеансовом компоненте, возвращающий строку. |
| |
| 1. Щелкните правой кнопкой мыши редактор MySession и выберите Insert Code ("Вставить код") (Alt-Insert; Ctrl-I на Mac), затем выберите Add Business Method ("Добавить бизнес-метод"). |
| 2. Введите *getResult* в поле Method Name ("Имя метода") и String ("Строка") в поле Return Type ("Тип возврата"). Нажмите кнопку "ОК". |
| 3. Внесите нижеприведенные изменения, чтобы метод ``getResult`` возвращал строку. |
| |
| Класс должен выглядеть следующим образом: |
| |
| |
| [source,java] |
| ---- |
| |
| @Stateless |
| public class MySession implements MySessionRemote { |
| |
| public String getResult() { |
| return *"This is My Session Bean"*; |
| } |
| } |
| ---- |
| |
| |
| . Сохраните изменения. |
| |
| Теперь у нас есть корпоративное приложение с простым компонентом 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, клиент приложения можно создать и запустить как отдельный проект. Клиент приложения больше не надо будет развертывать и запускать как часть корпоративного приложения. |
| |
| NOTE: При развертывании на GlassFish 3.0.1, необходимо создать клиентское приложение в виде модуля в проекте корпоративного приложения и запустить корпоративное приложение. |
| |
| 1. Выберите Файл > Создать проект и затем выберите "Клиент корпоративного приложения" в категории Java EE. Нажмите кнопку "Далее". |
| 2. Введите *EntAppClient* в поле Project Name ("Имя проекта"). Нажмите кнопку "Далее". |
| 3. Выберите GlassFish Server в качестве сервера. Нажмите кнопку "Завершить". |
| |
| Обратите внимание, что добавлять проект к корпоративному приложению необязательно. |
| |
| image::images/appclient-wizard-newentappclient.png[title="Создание клиента приложения, выбранного в мастере создания проектов"] |
| |
| При нажатии "Готово" 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. Нажмите кнопку "ОК". |
| |
| image::images/appclient-callenterprise.png[title="Диалоговое окно 'Вызвать компонент корпоративного уровня'"] |
| |
| В данном диалоговом окне автоматически выбирается тип интерфейса Remote ("Удаленный"). При нажатии кнопки OK среда IDE добавит следующую аннотацию к ``Main.java`` . |
| |
| |
| [source,java] |
| ---- |
| |
| @EJB |
| private static MySessionRemote mySession; |
| ---- |
| |
| Среда IDE также автоматически добавит EJBRemoteInterface как библиотеку проекта. |
| |
| |
| |
| . Измените ``главный`` метод извлечения строки метода ``getResult`` посредством интерфейса MySessionRemote. Сохраните изменения. |
| |
| [source,java] |
| ---- |
| |
| public static void main(String[] args) { |
| *System.err.println("result = " + mySession.getResult());* |
| } |
| ---- |
| |
| |
| == Запуск клиента приложения |
| |
| Теперь клиент приложения можно запустить, собрав и развернув проект EntAppClient. |
| |
| 1. Щелкните правой кнопкой мыши проект EntAppClient в окне Projects ("Проекты") и выберите Run ("Запустить"). |
| |
| Кроме того, вы можете расширить исходный пакет и щелкнуть правой кнопкой мыши класс ``Main.java`` и выбрать 'Выполнить файл'. |
| |
| После выбора Run ("Запустить") IDE собирает проект клиента приложения и разворачивает архив JAR на сервере. Сообщение от клиента приложения можно увидеть в окне вывода. |
| |
| image::images/appclient-buildoutput.png[title="Результат в окне вывода"] |
| |
| Если необходимо создать дополнительные EJB, можно просто добавить новые удаленные интерфейсы EJB к проекту библиотеки классов EJBRemoteInterface. |
| |
| link:/about/contact_form.html?to=3&subject=Feedback:%20Creating%20an%20Application%20Client[+Мы ждем ваших отзывов+] |
| |
| |
| |
| == Что дальше? |
| |
| For more information about using IDE NetBeans to develop Java EE applications, see the following resources: |
| |
| * link:javaee-intro.html[+Введение в технологию Java EE +] |
| * link:javaee-gettingstarted.html[+Начало работы с приложениями Java EE+] |
| * link:../../trails/java-ee.html[+Учебная карта по Java EE и Java Web+] |
| |
| Дополнительные сведения о разработке компонентов корпоративного уровня EJB можно найти в link:http://download.oracle.com/javaee/6/tutorial/doc/[+Руководстве по 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, link:../../../community/lists/top.html[+join the nbj2ee mailing list+]. |
| |