Java EE 7 и сервер приложений GlassFish 4
Покупка
Тематика:
Программирование на Java
Издательство:
ДМК Пресс
Автор:
Хеффельфингер Дэвид
Перевод:
Киселев Артём Николаевич
Год издания: 2023
Кол-во страниц: 333
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-89818-608-1
Артикул: 458083.04.99
Доступ онлайн
В корзину
Книга представляет собой практическое руководство с очень удобным подходом, позволяющим читателю быстрее освоить технологии 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
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Дэвид Хеффельфингер 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");
Доступ онлайн
В корзину