УДК 004.438Java EE
ББК 32.973.26-018.2
Х41
Х41 Дэвид Хеффельфингер
Разработка приложений Java EE 7 в NetBeans 8. / пер. с англ. Киселев
А. Н. – М.: ДМК Пресс, 2016. – 348 с.: ил.
ISBN 978-5-97060-329-1
Книга представляет собой практическое руководство по использованию
возможностей IDE NetBeans 8 для разработки корпоративных приложений,
совместимых со стандартом Java EE 7.
В книге показаны приемы эффективного программирования, задействующие
контекстные меню и «горячие» клавиши, мастера и шаблоны среды
NetBeans, затрагиваются вопросы создания, конфигурирования, развертывания,
отладки и профилирования корпоративных приложений с использованием
средств, встроенных в IDE NetBeans.
Существенное внимание уделено основным API Java EE в контексте их
работы в среде NetBeans. Подробно рассмотрены возможности NetBeans по
автоматизации разработки приложений с использованием таких API, как
Servlet, JSP, JSTL, JSF, JMS, JPA, JDBC, EJB, JAXWS, JAXRS, а также по
созданию для них инфраструктурных, коммуникационных и конфигурационных
элементов. Затронуты вопросы взаимодействия среды NetBeans с различными
серверами приложений, СУБД и внешними службами.
Приводится пример автоматического создания законченного корпоративного
приложения из существующей схемы базы данных, а также примеры
создания вебслужб и автоматического создания их клиентов.
Книга рассчитана на программистов, желающих разрабатывать Java EEприложения
c использованием функциональных возможностей IDE NetBeans.
Для чтения книги необходимо иметь некоторый опыт работы с Java, в то
время как начального знакомства с NetBeans и Java EE не требуется.
All rights reserved. No part of this book may be reproduced, stored in a retrieval system,
or transmitted in any form or by any means, without the prior written permission of the
publisher, except in the case of brief quotations embedded in critical articles or reviews.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой
бы то ни было форме и какими бы то ни было средствами без письменного разрешения
владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность
технических ошибок все равно существует, издательство не может гарантировать
абсолютную точность и правильность приводимых сведений. В связи с этим
издательство не несет ответственности за возможные ошибки, связанные с использованием
книги.
ISBN 9781783983520 (англ.)
ISBN 9785970603291 (рус.)
Copyright © 2015 Packt Publishing
© Оформление, перевод на русский язык,
ДМК Пресс, 2016
Стр.5
Оглавление
Об авторе ........................................................ 10
О рецензентах.................................................. 11
предисловие ................................................... 14
Вопросы, освещаемые в книге .............................................................. 14
Что нужно для чтения этой книги ........................................................... 16
Для кого эта книга ................................................................................. 16
Соглашения .......................................................................................... 16
Отзывы и пожелания ............................................................................. 17
Скачивание исходного кода примеров .................................................. 17
Список опечаток ................................................................................... 18
Нарушение авторских прав ................................................................... 18
Вопросы ............................................................................................... 18
Глава 1.
Знакомство с NetBeans ...................................... 19
Введение ...................................................................................... 19
Получение NetBeans ...................................................................... 20
Установка NetBeans....................................................................... 23
Microsoft Windows.................................................................................. 24
Mac OSx ................................................................................................ 24
Linux ..................................................................................................... 24
Другие платформы ............................................................................... 25
Процедура установки ............................................................................ 25
Первый запуск NetBeans ............................................................... 31
Настройка NetBeans для разработки Java EE-приложений ............ 32
Интегрирование NetBeans со сторонним сервером приложений .......... 33
Интегрирование NetBeans с СУРБД стороннего производителя ........... 36
Развертывание нашего первого приложения................................. 40
Подсказки NetBeans для эффективной разработки ....................... 43
Автозавершение кода ........................................................................... 43
Шаблоны кода ...................................................................................... 47
Клавиши быстрого вызова .................................................................... 49
Изучение визуальных индикаторов NetBeans ........................................ 53
Функция ускорения разработки HTML5 ......................................... 54
Резюме ......................................................................................... 59
Стр.6
6
Оглавление
Глава 2.
Разработка веб-приложений с использованием
JavaServer Faces 2.2 ......................................... 60
Введение в JavaServer Faces ......................................................... 60
Разработка нашего первого приложения JSF ................................ 61
Создание нового проекта JSF ............................................................... 61
Добавление в страницу возможности ввода данных .............................. 66
Создание именованного компонента CDI .............................................. 73
Реализация страницы подтверждения .................................................. 77
Запуск приложения ............................................................................... 78
Проверка допустимости в JSF ............................................................... 80
Шаблоны фейслетов ..................................................................... 83
Добавление шаблона фейслетов .......................................................... 84
Использование шаблона ....................................................................... 86
Контракты библиотек ресурсов ..................................................... 90
Составные компоненты ................................................................. 96
Потоки Faces Flow ....................................................................... 101
Поддержка HTML5 ....................................................................... 108
HTML5-подобная разметка ................................................................. 108
Сквозные атрибуты ............................................................................. 111
Резюме ....................................................................................... 113
Глава 3.
Библиотеки компонентов JSF ........................... 114
Использование компонентов PrimeFaces в JSF-приложениях ...... 114
Использование компонентов ICEfaces в JSF-приложениях .......... 120
Использование компонентов RichFaces в JSF-приложениях ........ 128
Резюме ....................................................................................... 133
Глава 4.
Взаимодействие с базами данных через
Java Persistence API ........................................ 135
Создание первой сущности JPA .................................................. 136
Добавление сохраняемых полей в сущность ....................................... 145
Создание объекта доступа к данным ................................................... 147
Автоматическое создание сущностей JPA ................................... 153
Именованные запросы и JPQL ............................................................ 162
Проверка допустимости со стороны компонентов .............................. 164
Отношения сущностей ........................................................................ 164
Создание приложений JSF из сущностей JPA .............................. 172
Резюме ....................................................................................... 179
Стр.7
Оглавление
Глава 5.
7
Реализация уровня бизнес-логики на сеансовых
компонентах EJB ............................................ 180
Введение в сеансовые компоненты ............................................. 181
Создание сеансового компонента в NetBeans ............................. 181
Доступ к компонентам из клиента ............................................... 193
Запуск клиента ................................................................................... 196
Управление транзакциями в сеансовых компонентах ................. 197
Реализация аспектно-ориентированного программирования
с помощью интерцепторов .......................................................... 199
Реализация класса интерцептора ....................................................... 200
Декорирование компонентов EJB аннотацией @Interceptors ............... 202
Служба таймеров EJB .................................................................. 203
Автоматическое создание сеансовых компонентов
из сущностей JPA ........................................................................ 206
Резюме ....................................................................................... 211
Глава 6.
Контексты и внедрение зависимостей ............... 213
Введение в CDI ............................................................................ 213
Квалификаторы ........................................................................... 219
Стереотипы ................................................................................. 225
Типы привязки интерцепторов .................................................... 227
Собственные контексты .............................................................. 232
Резюме ....................................................................................... 234
Глава 7.
Обмен сообщениями с применением JMS
и компонентов, управляемых сообщениями ........ 236
Введение в JMS .......................................................................... 236
Создание ресурсов JMS из NetBeans .......................................... 237
Реализация продюсера сообщений JMS ..................................... 243
Обработка сообщений компонентами, управляемыми
сообщениями .............................................................................. 250
Наблюдение за приложением в действии ........................................... 254
Резюме ....................................................................................... 256
Глава 8.
прикладной интерфейс JSON Processing ............ 257
Стр.8
8
Оглавление
Объектная модель JSON-P .......................................................... 257
Создание данных в формате JSON с использованием объектной
модели JSON-P .................................................................................. 258
Пример ............................................................................................... 261
Парсинг данных в формате JSON с использованием объектной модели
JSON-P .............................................................................................. 265
Потоковая модель JSON-P .......................................................... 268
Создание данных JSON с применением потоковой модели JSON-P .... 269
Парсинг данных JSON с применением потоковой модели JSON-P ...... 271
Резюме ....................................................................................... 274
Глава 9.
прикладной интерфейс WebSocket .................... 275
Исследование приемов использования веб-сокетов
на типовых примерах................................................................... 275
Опробование примера приложения Echo ............................................ 277
Программный код на Java .................................................................. 278
Программный код на JavaScript .......................................................... 279
Создание собственных приложений с веб-сокетами ................... 281
Создание пользовательского интерфейса .......................................... 283
Создание серверной конечной точки веб-сокета ................................ 286
Реализация поддержки веб-сокетов на стороне клиента .................... 288
Резюме ....................................................................................... 291
Глава 10.
Веб-службы RESTful на основе JAX-RS ............... 293
Создание веб-службы RESTful на основе существующей базы
данных ........................................................................................ 294
Анализ сгенерированного кода ........................................................... 296
Тестирование веб-службы RESTful .............................................. 300
Создание Java-клиента веб-службы RESTful ................................ 307
Создание JavaScript-клиента веб-службы RESTful ....................... 313
Резюме ....................................................................................... 317
Глава 11.
Веб-службы SOAP на основе JAX-WS .................. 318
Введение в веб-службы ............................................................... 318
Создание простой веб-службы .................................................... 319
Тестирование веб-службы .................................................................. 325
Создание клиента для веб-службы ...................................................... 327
Экспортирование компонентов EJB в виде веб-служб ................. 332
Реализация новых веб-служб в виде EJB ............................................. 332
Экспортирование существующих EJB в виде веб-служб ..................... 335
Стр.9