Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Java EE 7 и сервер приложений GlassFish 4

Покупка
Артикул: 458083.04.99
Доступ онлайн
590 ₽
В корзину
Книга представляет собой практическое руководство с очень удобным подходом, позволяющим читателю быстрее освоить технологии Java EE 7. Все рассмотренные основные интерфейсы Java EE 7 и подробная информация о сервере GlassFish 4 подкреплены практическими примерами их использования. Платформа Java Enterprise Edition (Java EE) 7 является отраслевым стандартом для корпоративных вычислений Java, а сервер приложений GlassFish представляет собой эталонную реализацию спецификации Java EE. В книге рассматриваются различные соглашения и аннотации Java EE 7, которые помогут существенно упростить разработку корпоративных приложений Java. Описываются последние версии технологий Servlet, JSP, JSF, JPA, EJB и JAX-WS, а также новые дополнения к спецификации Java EE, в частности JAX-RS и CDI. Рассмотрены задачи администрирования, конфигурирования и использования сервера GlassFish 4 для развертывания корпоративных приложений. Настоящее издание предназначено для разработчиков Java, желающих стать специалистами в разработке корпоративных приложений с использованием платформы Java EE 7. Для изучения материала необходимо иметь некоторый опыт работы с Java, однако знаний в области Java EE или J2EE не требуется. Книга официально рекомендуется компанией Oracle — разработчиком перечисленных технологий — в качестве учебного пособия.
Хеффельфингер, Д. Java EE 7 и сервер приложений GlassFish 4 : практическое руководство / Д. Хеффельфингер ; пер. с англ. А. Н. Киселёва. — 2-е изд. - Москва : ДМК Пресс, 2023. - 333 с. - ISBN 978-5-89818-608-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/2108486 (дата обращения: 21.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Дэвид Хеффельфингер

Java EE 7 
и сервер 

приложений 
GlassFish 4
Java EE 7 with GlassFish 4  
Application Server

A practical guide to install and configure the 
GlassFish 4 application server and develop 
Java EE 7 applications to be deployed to this 
server

David R. Heffelfinger

BIRMINGHAM - MUMBAI
Java EE 7 и сервер 
приложений GlassFish 4

Практическое руководство по установке 
и настройке сервера приложений GlassFish 4, 
а также по разработке приложений Java EE 7 
и их развертыванию на этом сервере

Дэвид Хеффельфингер

Москва, 2023

2-å èçäàíèå, ýëåêòðîííîå
УДК 004.438Java EE
ББК 32.973.26-018.2
Х41

Х41
Хеффельфингер, Дэвид.
Java EE 7 и сервер приложений GlassFish 4 / Д. Хеффельфингер ; пер. с англ. 
А. Н. Киселёва. — 2-е изд., эл. — 1 файл pdf : 333 с. — Москва : ДМК Пресс, 2023. — 
Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — 
Текст : электронный.

ISBN 978-5-89818-608-1

Книга представляет собой практическое руководство с очень удобным подходом, позволяющим 
читателю быстрее освоить технологии Java EE 7. Все рассмотренные основные интерфейсы 
Java EE 7 и подробная информация о сервере GlassFish 4 подкреплены практическими 
примерами их использования.
Платформа Java Enterprise Edition (Java EE) 7 является отраслевым стандартом для корпоративных 
вычислений Java, а сервер приложений GlassFish представляет собой эталонную 
реализацию спецификации Java EE. В книге рассматриваются различные соглашения и аннотации 
Java EE 7, которые помогут существенно упростить разработку корпоративных приложений 
Java. Описываются последние версии технологий Servlet, JSP, JSF, JPA, EJB и JAX-WS, 
а также новые дополнения к спецификации Java EE, в частности JAX-RS и CDI. Рассмотрены 
задачи администрирования, конфигурирования и использования сервера GlassFish 4 для развертывания 
корпоративных приложений.
Настоящее издание предназначено для разработчиков Java, желающих стать специалистами 
в разработке корпоративных приложений с использованием платформы Java EE 7. Для 
изучения материала необходимо иметь некоторый опыт работы с Java, однако знаний в области 
Java EE или J2EE не требуется.
Книга официально рекомендуется компанией Oracle — разработчиком перечисленных 
технологий — в качестве учебного пособия.

УДК 004.438Java EE 
ББК 32.973.26-018.2

Электронное издание на основе печатного издания: Java EE 7 и сервер приложений GlassFish 4 / Д. Хеф-
фельфингер ; пер. с англ. А. Н. Киселёва. — Москва : ДМК Пресс, 2016. — 333 с. — ISBN 978-5-97060-332-
1. — Текст : непосредственный.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими 
бы то ни было средствами без  письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все 
равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи 
с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги.

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских 
прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.

ISBN 978-5-89818-608-1
© 2014 Packt Publishing
©  Оформление, перевод на русский язык, 
ДМК Пресс, 201
Оглавление

Об авторе ........................................................ 10

О рецензентах.................................................. 11

предисловие ................................................... 13
Темы, освещаемые в книге ................................................................... 13
Что нужно для чтения этой книги ........................................................... 15
Кому адресована эта книга ................................................................... 15
Соглашения .......................................................................................... 15
Отзывы и пожелания ............................................................................. 16
Загрузка исходного кода примеров ...................................................... 17
Список опечаток ................................................................................... 17
Нарушение авторских прав ................................................................... 17
Вопросы ............................................................................................... 17

Глава 1.  
Знакомство с сервером GlassFish ........................ 18
Общий обзор Java EE и GlassFish ................................................... 18
Новые возможности Java EE 7 ............................................................... 19
Преимущества GlassFish ....................................................................... 21
Получение GlassFish ...................................................................... 22

Установка GlassFish ....................................................................... 23
Зависимости GlassFish .......................................................................... 24
Установка ............................................................................................. 24
Запуск GlassFish ............................................................................ 25
Развертывание первого приложения Java EE ........................................ 26
Домены GlassFish .......................................................................... 33
Создание доменов ................................................................................ 34
Удаление доменов ................................................................................ 35
Остановка домена ................................................................................ 36
Настройка подключения к базе данных .......................................... 36
Создание пулов соединений ................................................................. 37
Создание источников данных ................................................................ 40
Резюме ......................................................................................... 40

Глава 2.  
JavaServer Faces .............................................. 42
Введение в JSF.............................................................................. 42
Оглавление

Фейслеты ............................................................................................. 42
Необязательный файл faces-config.xml ................................................. 43
Разработка первого JSF-приложения ............................................ 44
Фейслеты ............................................................................................. 45
Этапы проекта ...................................................................................... 50
Проверка допустимости ........................................................................ 53
Группировка компонентов ..................................................................... 55
Отправка формы ................................................................................... 55
Именованные компоненты .................................................................... 56
Навигация ............................................................................................. 58
Пользовательская проверка допустимости данных ....................... 60
Создание нестандартных валидаторов ................................................. 60
Методы валидатора .............................................................................. 63
Настройка сообщений JSF по умолчанию ...................................... 66
Настройка стилей сообщения ............................................................... 67
Изменение текста сообщения ............................................................... 69
Поддержка Ajax в JSF-приложениях ............................................... 71

Поддержка HTML5 в JSF 2.2 .......................................................... 76
HTML5-совместимая разметка ............................................................. 76
Сквозные элементы .............................................................................. 78
JSF 2.2 Faces Flows ........................................................................ 80

Библиотеки дополнительных компонентов JSF ............................. 84

Резюме ......................................................................................... 84

Глава 3.  
Объектно-реляционное отображение в JPA ............ 85
База данных CUSTOMERDB ........................................................... 85

Введение в Java Persistence API ..................................................... 87
Отношения между сущностями ............................................................. 92
Составные первичные ключи .............................................................. 110
Введение в язык запросов JPA ............................................................ 115
Введение в Criteria API ........................................................................ 119
Поддержка проверки допустимости на стороне компонентов ............. 126
Заключительные замечания ........................................................ 128

Резюме ....................................................................................... 129

Глава 4.  
Enterprise JavaBeans ....................................... 130
Сеансовые компоненты ............................................................... 131
Простой сеансовый компонент ........................................................... 131
Более реалистический пример ........................................................... 135
Вызов сеансовых компонентов в веб-приложениях ............................. 137
Сеансовые компоненты-одиночки (Singleton) ..................................... 139
Асинхронные вызовы методов ............................................................ 140
Оглавление

Компоненты, Управляемые сообщениями ................................... 143

Транзакции в Enterprise JavaBeans .............................................. 144
Транзакции, управляемые контейнером .............................................. 145
Транзакции, управляемые компонентом ............................................. 148
Жизненные циклы компонентов Enterprise JavaBeans .................. 150
Жизненный цикл сеансового компонента с сохранением состояния ... 151
Жизненный цикл сеансового компонента без сохранения состояния .... 154
Жизненный цикл компонентов, управляемых сообщениями................ 156
Служба таймеров EJB .................................................................. 156
Таймеры EJB на основе календаря ...................................................... 160
Безопасность EJB ....................................................................... 162
Аутентификация клиента ..................................................................... 165
Резюме ....................................................................................... 167

Глава 5.  
Контексты и внедрение зависимостей ............... 169
Именованные компоненты .......................................................... 169

Внедрение зависимостей ............................................................ 171

Квалификаторы CDI ..................................................................... 173

Контексты именованных компонентов ......................................... 176

Резюме ....................................................................................... 184

Глава 6.  
Обработка JSON с помощью JSON-P API ............. 185
JSON-P Model API ........................................................................ 186
Создание данных в формате JSON с использованием Model API ......... 186
Парсинг данных в формате JSON с использованием Model API ........... 189
JSON-P Streaming API .................................................................. 191
Создание данных в формате JSON с использованием Streaming API ... 191
Парсинг данных в формате JSON с использованием Streaming API ..... 193
Резюме ....................................................................................... 196

Глава 7.  
Веб-сокеты ................................................... 197
Создание серверных конечных точек веб-сокетов  ...................... 197
Создание серверной конечной точки веб-сокета с применением 
аннотаций ........................................................................................... 198
Создание клиентов веб-сокетов .................................................. 200
Создание клиентов веб-сокетов на JavaScript  .................................... 201
Создание клиентов веб-сокетов на Java .............................................. 204
Дополнительная информация о Java API для веб-сокетов ........... 208

Резюме ....................................................................................... 208
Оглавление

Глава 8.  
Служба обмена сообщениями Java .................... 210
Настройка GlassFish для использования JMS .............................. 210
Настройка фабрики JMS-соединений ................................................. 211
Создание очереди JMS-сообщений .................................................... 213
Создание темы JMS-сообщений ......................................................... 214
Очереди сообщений .................................................................... 216
Отправка сообщений в очередь .......................................................... 216
Извлечение сообщений из очереди .................................................... 219
Асинхронный прием сообщений из очереди ....................................... 221
Просмотр очередей сообщений .......................................................... 224
Темы сообщений ......................................................................... 225
Отправка сообщений в тему ................................................................ 225
Получение сообщений из темы ........................................................... 226
Создание долговременной подписки .................................................. 228
Резюме ....................................................................................... 231

Глава 9.  
Безопасность приложений Java EE .................... 232
Области безопасности ................................................................ 232
Предопределенные области безопасности ......................................... 233
Стандартная аутентификация через область файла .................... 238

Аутентификация на основе формы .............................................. 248

Создание самоподписанных сертификатов ................................. 253

Настройка приложений для использования области  
сертификата ............................................................................... 258
Определение дополнительных областей ............................................. 262
Резюме ....................................................................................... 278

Глава 10.  
Веб-службы JAX-WS ........................................ 279
Разработка веб-служб с использованием JAX-WS API .................. 279
Создание клиента веб-службы ............................................................ 284
Отправка вложений веб-службам ........................................................ 291
Экспортирование компонентов EJB в виде веб-служб ................. 294
Клиенты веб-служб EJB ...................................................................... 295
Безопасность веб-служб ............................................................. 296

Безопасность веб-служб EJB ...................................................... 298

Резюме ....................................................................................... 300

Глава 11.  
Веб-службы RESTful JAX-RS ............................. 301
Оглавление

Введение в веб-службы RESTful и JAX-RS .................................... 301
Создание простой веб-службы RESTful ............................................... 302
Настройка пути к ресурсам REST в приложении .................................. 305
Тестирование веб-службы .................................................................. 306
Преобразование данных в/из XML с помощью JAXB ............................ 308
Создание клиента веб-службы RESTful ........................................ 312

Параметры запроса и пути .......................................................... 313
Параметры запроса ............................................................................ 314
Отправка параметров запроса через клиентский JAX-RS API .............. 316
Параметры пути .................................................................................. 316
Отправка параметров пути через клиентский JAX-RS API .................... 318
Резюме ....................................................................................... 320

предметный указатель .................................... 321
Об автОре

Дэвид Хеффельфингер (David R. Heffelfinger) является техническим 
директором Ensode Technology LLC – консалтинговой компании, 
специализирующейся на разработке программного обеспечения, 
расположенной в районе большого Вашингтона, округ Колумбия. Дэвид – 
профессиональный архитектор, проектировщик и разработчик 
программного обеспечения с 1995 года. Использует Java в качестве 
основного языка программирования с 1996 года. Ему довелось работать 
во многих крупных проектах для ряда клиентов, в числе которых 
департамент США по Национальной безопасности, Freddie Mac, 
Fannie Mae и Министерство обороны США. Дэвид имеет степень 
магистра в области разработки программного обеспечения Южного 
методического университета. Также является главным редактором 
Ensode.net (http://www.ensode.net), веб-сайта, посвященного Java, 
Linux и другим технологиям. Часто выступает на конференциях Java-
разработчиков, таких как JavaOne. Вы можете следовать за Дэвидом в 
Твиттере, его учетная запись: @ensode.
О рецензентах

Штефан Хорошовец (Stefan Horochovec) из Бразилии. Имеет ученую 
степень в области проектирования программного обеспечения и 
в настоящее время работает как программный архитектор.
Последние 10 лет занимался разработкой корпоративных приложений 
на Java, с использованием серверов приложений, таких как 
GlassFish, JBoss, Weblogic и WildFly.
Имеет 4-летний опыт работы с такими технологиями создания 
пользовательских интерфейсов, как Apache Flex (три года подряд выступал 
с докладами на конференции FlexMania – небывалое событие 
в Apache Flex в Латинской Америке), Struts и JSF. В настоящее время 
занимается проектами на основе фреймворка JSF 2 и JavaScript, с 
сильным уклоном в сторону AngularJS.
Имеет опыт работы с мобильными технологиями в течение 6 лет, 
хорошо знает платформу Android. Был одним из первых преподавателей 
по платформе Android в Бразилии выступал с докладами на 
конференции, посвященной Android, в Бразилии. Два года занимался 
разработкой корпоративных веб-приложений на основе HTML для 
мобильных устройств, используя такие фреймворки, как PhoneGap.
В 2014 Штефана пригласили присоединиться к программе 
«BlackBerry Elite Member», объединившей около 100 специалистов 
по всему миру, осознающих важность развития мобильных технологий 
и использующих операционную систему BlackBerry на одноименных 
устройствах в качестве мобильной платформы.
Штефан преподает в университете дисциплины, связанные с разработкой 
мобильных и веб-приложений, а также ведет курсы на предприятиях, 
где преподает Java, HTML/JS/CSS3, PhoneGap, Git и серверы 
приложений для Java.

Тим Пинет (Tim Pinet) – практикующий программист и веб-
разработчик. В настоящее время живет в Оттаве, Канада. С раннего 
возраста начал интересоваться всем, что связано с электроникой и в 
свое время поступил на факультет проектирования и разработки программного 
обеспечения. Оттава – крупный столичный город с развитым 
промышленным производством, предоставляющим богатые 
возможности, поэтому Тим получил отличный шанс попрактиковаться 
в разработке программного обеспечения в частных (Computer 
Associates, Emergis, Telus, Nortel) и общественных компаниях (City of 
Ottawa) в самых разных областях, таких как транспорт, здравоохранение, 
связь и муниципальные услуги.
Как приверженец идее открытого программного обеспечения, Тим 
готов работать за невысокую плату, но с большой отдачей и в любых 
окружениях. Часто вносит свой вклад в развитие открытых проектов 
(таких как Apache и SourceForge) и делится своими знаниями в сообществах (
таких как Stackoverflow и его персональный блог). В своей 
работе широко использует инструменты с открытым исходным кодом, 
чем экономит своим работодателям тысячи долларов, привносит 
передовые приемы ускоренной разработки и тестирования, не требующие 
финансовых затрат и не влекущих потерю качества.
Обожая все, что связано с программированием и Интернетом, Тим 
постоянно удовлетворяет свои желания использовать новейшие технологии 
для повышения качества обслуживания клиентов. Он обладает 
обширным опытом практического применения корпоративных 
технологий Java и веб-служб, разработки пользовательских интерфейсов 
и серверных компонентов приложений, управления базами 
данных и интеграции служб SOAP. Он очень ценный командный 
игрок и лучше всего проявляет себя в руководстве коллективами и 
принятии архитектурных решений.

Чираг Сангани (Chirag Sangani) – программист, живет в пригороде 
Сиэтла. Получил степень магистра в Стэнфордском университете 
(штат Калифорния), и бакалавра – в  Индийском технологическом 
институте, в городе Канпур (Индия). В настоящее время работает инженером-
программистом в Microsoft.

О рецензентах
предислОвие

Java Enterprise Edition 7, последняя версия Java EE, добавила несколько 
новых особенностей в спецификацию. Некоторые существующие 
Java EE API претерпели значительные усовершенствования 
в этой версии спецификации; другие, совершенно новые API, были 
добавлены в спецификацию Java EE. Эта книга охватывает самые 
последние версии наиболее популярных спецификаций Java EE, 
включая JavaServer Faces (JSF), Java Persistence API (JPA), Enterprise 
JavaBeans (EJB), Contexts and Dependency Injection (CDI), новый 
Java API for JSON Processing (JSON-P), WebSocket, полностью обновленный 
Java Messaging Service (JMS) API 2.0, Java API for XML Web 
Services (JAX-WS) и Java API for RESTful Web Services (JAX-RS), а 
также приемы обеспечения безопасности в приложениях Java EE.
Сервер приложений GlassFish является эталонной реализацией для 
Java EE; это первый сервер приложений для Java EE на рынке, обеспечивший 
поддержку Java EE 7. Эта книга охватывает GlassFish 4.0, 
последнюю версию мощного сервера приложений с открытым исходным 
кодом.

Темы, освещаемые в книге

В главе 1, «Знакомство с сервером GlassFish», объясняется, как установить 
и настроить сервер GlassFish и как развертывать приложения 
Java EE через веб-консоль GlassFish. Наконец, здесь рассматриваются 
основные задачи администрирования GlassFish, такие как настройка 
доменов и соединений с базой данных, добавление пулов соединений 
и источников данных.
В главе 2, «JavaServer Faces», рассказывается о разработке приложений 
с использованием фреймворка JSF и его новых особенностей, 
включая поддержку HTML5-подобной разметки и потоков Faces 
Flows. Кроме того, здесь рассказывается о приемах проверки ввода 
пользователя с применением стандартных валидаторов JSF, а также 
о том, как создавать собственные валидаторы и определять методы, 
осуществляющие проверку.
Предисловие

Глава 3, «Объектно-реляционное отображение в JPA», обсуждает 
вопросы взаимодействий с системами управления реляционными 
базами данных (СУРБД), такими как Oracle или MySQL с применением 
Java Persistence API.
Глава 4, «Enterprise JavaBeans», объясняет, как разрабатывать приложения 
с использованием сеансовых компонентов и компонентов, 
управляемых сообщениями. Описывает основные особенности EJB, 
такие как поддержка управления транзакциями, служба таймеров 
EJB и безопасность. Рассматривает жизненные циклы разных типов 
компонентов Enterprise JavaBeans и рассказывает, как обеспечить автоматический 
вызов методов компонентов контейнером EJB в определенные 
моменты жизненного цикла.
Глава 5, «Контексты и внедрение зависимостей», представляет собой 
введение в механизм поддержки контекстов и внедрения зависимостей (
Contexts and Dependency Injection, CDI). Эта глава познакомит 
вас с именованными компонентами CDI, квалификаторами CDI 
и расскажет, как внедрять зависимости с помощью CDI.
Глава 6, «Обработка JSON с помощью JSON-P API», рассказывает, 
как создавать и обрабатывать данные в формате JSON с применением 
нового прикладного интерфейса JSON-P. Она охватывает оба API для 
обработки JSON: Model API и Streaming API.
Глава 7, «Веб-сокеты», рассказывает, как создавать веб-приложения, 
поддерживающие полноценные двусторонние взаимодействия между 
клиентом и сервером, в противоположность традиционным, опирающимся 
на традиционный цикл запрос/ответ.
Глава 8, «Служба обмена сообщениями Java», повествует о том, как 
настроить в GlassFish фабрики соединений JMS, очереди и темы сообщений 
JMS, используя веб-консоль GlassFish. Здесь также рассказывается, 
как организовать обмен сообщениями между приложениями 
с использованием полностью обновленного JMS 2.0 API.
Глава 9, «Безопасность приложений Java EE», рассказывает, как 
обезопасить приложения Java EE с применением стандартных областей 
безопасности (security realms), а также о том, как добавлять 
собственные области безопасности.
Глава 10, «Веб-службы JAX-WS», охватывает приемы разработки 
веб-служб и их клиентов с помощью JAX-WS API. Здесь также рассматривается 
возможность автоматического создания программного 
кода с использованием инструментов сборки ANT и Maven.
Глава 11, «Веб-службы RESTful JAX-RS», описывает приемы создания 
веб-служб RESTful с использованием нового прикладного ин-
Предисловие

терфейса Java API for RESTful Web Services, а также приемы создания 
клиентов веб-служб RESTful с применением совершенно нового 
стандартного клиентского JAX-RS API. Наконец, здесь рассказывается, 
как автоматически преобразовывать данные между Java и XML, 
используя возможности Java API для связывания с XML (Java API 
for XML Binding, JAXB). 

Что нужно для чтения этой книги

Для чтения этой книги и опробования примеров из нее потребуется 
установить следующее программное обеспечение:
• комплект разработчика Java (Java Development Kit, JDK) версии 
1.7 или выше;
• GlassFish 4.0;
• Maven версии 3 или выше (необходим для сборки примеров);
• среда разработки на Java, такая как NetBeans, Eclipse или 
IntelliJ IDEA (необязательно, но рекомендуется).

Кому адресована эта книга

Эта книга предполагает знакомство читателя с языком программирования 
Java, поэтому она адресована разработчикам приложений на 
Java, желающим освоить Java EE, а также разработчикам приложений 
Java EE, желающим освежить свои знания и познакомиться с последней 
версией спецификации Java EE.

Соглашения

В этой книге вы обнаружите несколько стилей оформления текста, 
которые разделяют различные виды информации. Ниже приводятся 
примеры этих стилей и поясняется их значение.
Элементы программного кода в тексте, имена таблиц в базах данных, 
имена папок и файлов, расширения файлов, пути к каталогам в 
файловой системе, фиктивные адреса URL, ввод пользователя и учетные 
записи в Twitter оформляются так: «Аннотация @Named на уровне 
класса указывает, что этот компонент является именованным компонентом 
CDI». 

if (!emailValidator.isValid(email)) {
  FacesMessage facesMessage = 
    new FacesMessage(htmlInputText.getLabel()
        + ": email format is not valid");
Доступ онлайн
590 ₽
В корзину