УДК 004.455.2
ББК 32.973.41
П16
П16
Панда, Дебу.
EJB 3 в действии / Д. Панда, Р. Рахман, Р. Купрак и др. ; пер. с англ. А. Н. Киселева.
— 2-е изд., эл. — 1 файл pdf : 620 с. — Москва : ДМК Пресс, 2023. — Систем. требования:
Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный.
ISBN 978-5-89818-325-7
Фреймворк EJB 3 предоставляет стандартный способ оформления прикладной логики в виде
управляемых модулей, которые выполняются на стороне сервера, упрощая тем самым создание,
сопровождение и расширение приложений Java EE. Версия EJB 3.2 включает большее число расширений
и более тесно интегрируется с другими технологиями Java, такими как CDI, делая разработку
еще проще. Книга знакомит читателя с EJB на многочисленных примерах кода, сценариях
из реальной жизни и иллюстрациях. Помимо основ в ней описываются некоторые особенности
внутренней реализации, наиболее эффективные приемы использования, шаблоны проектирования,
даются советы по оптимизации производительности и различные способы доступа, включая
веб-службы, службы REST и веб-сокеты.
Издание предназначено программистам, уже знающим язык Java. Опыт работы с EJB или Java
EE не требуется.
УДК 004.455.2
ББК 32.973.41
Электронное издание на основе печатного издания: EJB 3 в действии / Д. Панда, Р. Рахман, Р. Купрак и др. ;
пер. с англ. А. Н. Киселева. — Москва : ДМК Пресс, 2015. — 618 с. — ISBN 978-5-97060-135-8. — Текст : непосредственный.
Все
права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы
то ни было средствами без письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно
существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с
этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги.
В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских
прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.
ISBN 978-5-89818-325-7
© 2014 by Manning Publications Co.
© Оформление, перевод на русский язык,
и здание, ДМК Пресс, 2015
Стр.5
ОГЛАВЛЕНИЕ
Предисловие ......................................................................... 14
Благодарности .................................................................................................. 15
О книге .............................................................................................................. 18
Структура книги ................................................................................................ 19
Загружаемый исходный код .............................................................................. 20
Соглашения по оформлению исходного кода .................................................... 20
Автор в сети ...................................................................................................... 20
О названии ........................................................................................................ 21
Об авторах ........................................................................................................ 21
Об иллллюстрации на обложке .......................................................................... 22
ЧАСТЬ I
Обзор ландшафта EJB ............................................................. 23
Глава 1. Что такое EJB 3 ........................................................... 24
1.1. Обзор EJB ................................................................................................... 25
1.1.1. EJB как модель компонентов .............................................................. 26
1.1.2. Службы компонентов EJB ................................................................... 26
1.1.3. Многоуровневые архитектуры и EJB ................................................... 28
1.1.4. Почему стоит выбрать EJB 3? .............................................................. 32
1.2. Основы типов EJB ....................................................................................... 34
1.2.1. Сеансовые компоненты ...................................................................... 34
1.2.2. Компоненты, управляемые сообщениями ........................................... 35
1.3. Связанные спецификации .......................................................................... 35
1.3.1. Сущности и Java Persistence API .......................................................... 35
1.3.2. Контексты и внедрение зависимостей для Java EE .............................. 37
1.4. Реализации EJB .......................................................................................... 37
1.4.1. Серверы приложений ......................................................................... 38
1.4.2. EJB Lite ............................................................................................... 39
1.4.3. Встраиваемые контейнеры ................................................................. 40
1.4.4. Использование EJB 3 в Tomcat ............................................................ 40
1.5. Превосходные инновации ........................................................................... 41
1.5.1. Пример «Hello User» ............................................................................ 41
1.5.2. Аннотации и XML ................................................................................. 42
1.5.3. Значения по умолчанию и явные настройки ........................................ 43
1.5.4. Внедрение зависимостей и поиск в JNDI ............................................ 44
1.5.5. CDI и механизм внедрения в EJB ........................................................ 45
1.5.6. Тестируемость компонентов POJO ...................................................... 45
Стр.6
6
Оглавление
1.6. Новшества в EJB 3.2 ................................................................................... 46
1.6.1. Поддержка EJB 2 теперь является необязательной ............................. 46
1.6.2. Усовершенствования в компонентах, управляемых сообщениями ...... 46
1.6.3. Усовершенствования в сеансовых компонентах с сохранением
состояния .................................................................................................... 47
1.6.4. Упрощение локальных интерфейсов компонентов без сохранения
состояния .................................................................................................... 48
1.6.5. Усовершенствования в TimerService API .............................................. 49
1.6.6. Усовершенствования в EJBContainer API ............................................. 49
1.6.7. Группы EJB API .................................................................................... 49
1.7. В заключение .............................................................................................. 50
Глава 2. Первая проба EJB ........................................................ 51
2.1. Введение в приложение ActionBazaar ......................................................... 52
2.1.1. Архитектура ........................................................................................ 52
2.1.2. Решение на основе EJB 3 .................................................................... 54
2.2. Реализация прикладной логики с применением EJB 3 ................................ 55
2.2.1. Использование сеансовых компонентов без сохранения состояния ... 56
2.2.2 Использование сеансовых компонентов с сохранением состояния ..... 58
2.2.3. Модульное тестирование компонентов EJB 3 ..................................... 63
2.3. Использование CDI с компонентами EJB 3 .................................................. 64
2.3.1. Использование CDI с JSF 2 и EJB 3 ...................................................... 65
2.3.2. Использование CDI с EJB 3 и JPA 2 ...................................................... 68
2.4. Использование JPA 2 с EJB 3 ...................................................................... 70
2.4.1. Отображение сущностей JPA 2 в базу данных ..................................... 71
2.4.2. Использование EntityManager ............................................................. 72
2.5. В заключение .............................................................................................. 74
ЧАСТЬ II
Компоненты EJB ..................................................................... 75
Глава 3. Реализация прикладной логики с помощью сеансовых
компонентов .......................................................................... 76
3.1. Знакомство с сеансовыми компонентами ................................................... 77
3.1.1. Когда следует использовать сеансовые компоненты .......................... 78
3.1.2. Состояние компонента и типы сеансовых компонентов ...................... 80
3.2. Сеансовые компоненты без сохранения состояния .................................... 83
3.2.1. Когда следует использовать сеансовые компоненты
без сохранения состояния ........................................................................... 83
3.2.2. Организация компонентов в пулы ....................................................... 84
3.2.3. Пример BidService .............................................................................. 86
3.2.4. Применение аннотации @Stateless ..................................................... 89
3.2.5. Прикладные интерфейсы компонентов ............................................... 90
3.2.6. События жизненного цикла ................................................................. 93
3.2.7. Эффективное использование сеансовых компонентов
без сохранения состояния ........................................................................... 96
3.3. Сеансовые компоненты с сохранением состояния ...................................... 97
3.3.1. Когда следует использовать сеансовые компоненты
с сохранением состояния ............................................................................. 98
Стр.7
Оглавление
7
3.3.2. Пассивация компонентов .................................................................... 99
3.3.3. Сеансовые компоненты с сохранением состояния в кластере .......... 100
3.3.4. Пример реализации создания учетной записи .................................. 100
3.3.5. Применение аннотации @Stateful ..................................................... 104
3.3.6. Прикладные интерфейсы компонентов ............................................. 105
3.3.7. События жизненного цикла ............................................................... 105
3.3.8. Эффективное использование сеансовых компонентов
с сохранением состояния ........................................................................... 107
3.4. Сеансовые компоненты-одиночки ............................................................ 109
3.4.1. Когда следует использовать сеансовые компоненты-одиночки ........ 110
3.4.2. Пример реализации «товара дня» в ActionBazaar .............................. 111
3.4.3. Применение аннотации @Singleton ................................................... 113
3.4.4. Управление конкуренцией в компоненте-одиночке ........................... 114
3.4.5. Прикладной интерфейс компонента ................................................. 117
3.4.6. События жизненного цикла ............................................................... 118
3.4.7. Аннотация @Startup .......................................................................... 119
3.4.8. Эффективное использование сеансовых компонентов-одиночек ..... 120
3.5. Асинхронные сеансовые компоненты ....................................................... 122
3.5.1. Основы асинхронного вызова ........................................................... 122
3.5.2. Когда следует использовать асинхронные сеансовые
компоненты ................................................................................................ 123
3.5.3. Пример компонента ProcessOrder ..................................................... 124
3.5.4. Применение аннотации @Asynchronous ............................................ 126
3.5.5. Применение интерфейса Future ........................................................ 127
3.5.6. Эффективное использование асинхронных сеансовых
компонентов .............................................................................................. 127
3.6. В заключение ............................................................................................ 128
Глава 4. Обмен сообщениями и разработка компонентов MDB ..... 130
4.1. Концепции обмена сообщениями ............................................................. 131
4.1.1. Промежуточное ПО передачи сообщений ......................................... 131
4.1.2. Обмен сообщениями в ActionBazaar ................................................. 132
4.1.3. Модели обмена сообщениями .......................................................... 134
4.2. Введение в JMS ........................................................................................ 136
4.2.1. Интерфейс JMS Message .................................................................. 138
4.3. Использование компонентов MDB ............................................................ 140
4.3.1. Когда следует использовать обмен сообщениями
и компоненты MDB ..................................................................................... 141
4.3.2. Почему следует использовать MDB? ................................................. 141
4.3.3. Разработка потребителя сообщений с применением MDB ................ 143
4.3.4. Применение аннотации @MessageDriven .......................................... 144
4.3.5. Реализация интерфейса MessageListener ......................................... 145
4.3.6. Использование параметра ActivationConfigProperty .......................... 146
4.3.7. События жизненного цикла ............................................................... 149
4.3.8. Отправка сообщений JMS из компонентов MDB ............................... 151
4.3.9. Управление транзакциями MDB ........................................................ 152
4.4. Приемы использования компонентов MDB ............................................... 153
4.5. В заключение ............................................................................................ 155
Стр.8
8
Оглавление
Глава 5. Контекст EJB времени выполнения, внедрение
зависимостей и сквозная логика ..............................................157
5.1. Контекст EJB ............................................................................................ 157
5.1.1. Основы контекста EJB....................................................................... 158
5.1.2. Интерфейсы контекста EJB ............................................................... 159
5.1.3. Доступ к контейнеру через контекст EJB ........................................... 160
5.2. Использование EJB DI и JNDI .................................................................... 161
5.2.1. Пример использования JNDI в EJB .................................................... 162
5.2.2. Как присваиваются имена компонентам EJB ..................................... 166
5.2.3. Внедрение зависимостей с применением @EJB ............................... 169
5.2.4. Когда следует использовать внедрение зависимостей EJB ............... 170
5.2.5. Аннотация @EJB в действии .............................................................. 171
5.2.6. Внедрение ресурсов с помощью аннотации @Resource .................... 173
5.2.7. Когда следует использовать внедрение ресурсов ............................. 175
5.2.8. Аннотация @Resource в действии ..................................................... 175
5.2.9. Поиск ресурсов и компонентов EJB в JNDI ........................................ 178
5.2.10. Когда следует использовать поиск в JNDI ....................................... 180
5.2.11. Контейнеры клиентских приложений .............................................. 180
5.2.12. Встраиваемые контейнеры ............................................................. 181
5.2.13. Эффективный поиск и внедрение компонентов EJB ........................ 183
5.2.14. Механизмы внедрения EJB и CDI .................................................... 184
5.3. AOP в мире EJB: интерцепторы ................................................................. 185
5.3.1. Что такое AOP? ................................................................................. 185
5.3.2. Основы интерцепторов ..................................................................... 186
5.3.3. Когда следует использовать интерцепторы ...................................... 187
5.3.4. Порядок реализации интерцепторов ................................................ 187
5.3.5. Определение интерцепторов ............................................................ 188
5.3.6. Интерцепторы в действии ................................................................. 192
5.3.7. Эффективное использование интерцепторов ................................... 198
5.3.8. Интерцепторы CDI и EJB ................................................................... 199
5.4. В заключение ............................................................................................ 205
Глава 6. Транзакции и безопасность .........................................206
6.1. Знакомство с транзакциями ..................................................................... 207
6.1.1. Основы транзакций ........................................................................... 208
6.1.2. Транзакции в Java ............................................................................. 210
6.1.3. Транзакции в EJB .............................................................................. 212
6.1.4. Когда следует использовать транзакции ........................................... 214
6.1.5. Как реализованы транзакции EJB ..................................................... 215
6.1.6. Двухфазное подтверждение ............................................................. 217
6.1.7. Производительность JTA .................................................................. 218
6.2. Транзакции, управляемые контейнером ................................................... 219
6.2.1. Досрочное оформление заказов с применением модели CMT .......... 219
6.2.2. Аннотация @TransactionManagement ................................................. 220
6.2.3. Аннотация @TransactionAttribute........................................................ 221
6.2.4. Откат транзакций в модели CMT ....................................................... 224
6.2.5. Транзакции и обработка исключений ................................................ 226
6.2.6. Синхронизация с сеансом ................................................................ 228
6.2.7. Эффективное использование модели CMT ....................................... 228
Стр.9
Оглавление
9
6.3. Транзакции, управляемые компонентами ................................................. 229
6.3.1. Досрочное оформление заказов с применением модели BMT .......... 230
6.3.2. Получение экземпляра UserTransaction ............................................. 231
6.3.3. Использование интерфейса UserTransaction ..................................... 232
6.3.4. Эффективное использование модели BMT ....................................... 234
6.4. Безопасность EJB ..................................................................................... 234
6.4.1. Аутентификация и авторизация ........................................................ 235
6.4.2. Пользователи, группы и роли ............................................................ 236
6.4.3. Как реализована поддержка безопасности в EJB .............................. 237
6.4.4. Декларативное управление безопасностью в EJB ............................. 241
6.4.5. Программное управление безопасностью в EJB ............................... 243
6.4.6. Эффективное использование поддержки безопасности в EJB .......... 246
6.5. В заключение ............................................................................................ 247
Глава 7. Планирование и таймеры ............................................249
7.1. Основы планирования .............................................................................. 250
7.1.1. Возможности Timer Service ............................................................... 250
7.1.2. Таймауты .......................................................................................... 253
7.1.3. Cron .................................................................................................. 253
7.1.4. Интерфейс Timer .............................................................................. 254
7.1.5. Типы таймеров .................................................................................. 256
7.2. Декларативные таймеры .......................................................................... 257
7.2.1. Аннотация @Schedule ....................................................................... 257
7.2.2. Аннотация @Schedules ...................................................................... 258
7.2.3. Параметры аннотации @Schedule ..................................................... 258
7.2.4. Пример использования декларативных таймеров ............................. 259
7.2.5. Синтаксис правил в стиле cron .......................................................... 260
7.3. Программные таймеры ............................................................................. 263
7.3.1. Знакомство с программными таймерами ......................................... 263
7.3.2. Пример использования программных таймеров ............................... 265
7.3.3. Эффективное использование программных таймеров EJB ............... 267
7.4. В заключение ............................................................................................ 268
Глава 8. Компоненты EJB как веб-службы ..................................270
8.1. Что такое «веб-служба»? ........................................................................... 271
8.1.1. Свойства веб-служб .......................................................................... 271
8.1.2. Транспорты ....................................................................................... 272
8.1.3. Типы веб-служб ................................................................................ 272
8.1.4. Java EE API для веб-служб ................................................................. 273
8.1.5. Веб-службы и JSF ............................................................................. 274
8.2. Экспортирование компонентов EJB с использованием SOAP (JAX-WS) ..... 274
8.2.1. Основы SOAP .................................................................................... 274
8.2.2. Когда следует использовать службы SOAP ........................................ 279
8.2.3. Когда следует экспортировать компоненты EJB в виде
веб-служб SOAP ......................................................................................... 280
8.2.4. Веб-служба SOAP для ActionBazaar ................................................... 281
8.2.5. Аннотации JAX-WS ............................................................................ 286
8.2.6. Эффективное использование веб-служб SOAP в EJB ........................ 290
8.3. Экспортирование компонентов EJB с использованием REST (JAX-RS) ...... 292
Стр.10
10
Оглавление
8.3.1. Основы REST .................................................................................... 293
8.3.2. Когда следует использовать REST/JAX-RS ........................................ 296
8.3.3. Когда следует экспортировать компоненты EJB в виде
веб-служб REST ......................................................................................... 297
8.3.4. Веб-служба REST для ActionBazaar ................................................... 298
8.3.5. Аннотации JAX-RS ............................................................................. 302
8.3.6. Эффективное использование веб-служб REST в EJB ........................ 307
8.4. Выбор между SOAP и REST ....................................................................... 308
8.5. В заключение ............................................................................................ 310
ЧАСТЬ III
Использование EJB совместно с JPA и CDI ................................ 311
Глава 9. Сущности JPA ........................................................... 312
9.1. Введение в JPA ......................................................................................... 313
9.1.1. Несоответствие интерфейсов ........................................................... 313
9.1.2. Взаимосвязь между EJB 3 и JPA ........................................................ 314
9.2. Предметное моделирование .................................................................... 315
9.2.1. Введение в предметное моделирование ........................................... 315
9.2.2. Предметная модель приложения ActionBazaar .................................. 315
9.3. Реализация объектов предметной области с помощью JPA ...................... 320
9.3.1. Аннотация @Entity ............................................................................. 320
9.3.2. Определение таблиц......................................................................... 322
9.3.3. Отображение свойств в столбцы ....................................................... 325
9.3.4. Типы представления времени ........................................................... 330
9.3.5. Перечисления ................................................................................... 331
9.3.6. Коллекции ........................................................................................ 332
9.3.7. Определение идентичности сущностей ............................................ 334
9.3.8. Генерирование значений первичных ключей ..................................... 339
9.4. Отношения между сущностями ................................................................. 343
9.4.1. Отношение «один к одному» ............................................................. 344
9.4.2. Отношения «один ко многим» и «многие к одному» ........................... 346
9.4.3. Отношение «многие ко многим» ........................................................ 349
9.5. Отображение наследования ..................................................................... 350
9.5.1. Стратегия единой таблицы ............................................................... 351
9.5.2. Стратегия соединения таблиц .......................................................... 353
9.5.3. Стратегия отдельных таблиц для каждого класса .............................. 354
9.6. В заключение ............................................................................................ 357
Глава 10. Управление сущностями ...........................................358
10.1. Введение в использование EntityManager ............................................... 358
10.1.1. Интерфейс EntityManager ................................................................ 359
10.1.2. Жизненный цикл сущностей ............................................................ 361
10.1.3. Контекст сохранения, области видимости и EntityManager .............. 364
10.1.4. Использование EntityManager в ActionBazaar .................................. 366
10.1.5. Внедрение EntityManager ................................................................ 367
10.1.6. Внедрение EntityManagerFactory ..................................................... 369
10.2. Операции с хранилищем ......................................................................... 371
10.2.1. Сохранение сущностей ................................................................... 372
Стр.11
Оглавление
11
10.2.2. Извлечение сущностей по ключу ..................................................... 373
10.2.3. Изменение сущностей .................................................................... 379
10.2.4. Удаление сущностей ....................................................................... 382
10.3. Запросы сущностей ................................................................................ 384
10.3.1. Динамические запросы ................................................................... 385
10.3.2. Именованные запросы .................................................................... 385
10.4. В заключение .......................................................................................... 386
Глава 11. JPQL ......................................................................387
11.1. Введение в JPQL ..................................................................................... 387
11.1.1. Типы инструкций ............................................................................. 388
11.1.2. Предложение FROM ........................................................................ 390
11.1.3. Инструкция SELECT ........................................................................ 401
11.1.4. Управление результатами ............................................................... 404
11.1.5. Соединение сущностей................................................................... 405
11.1.6. Операции массового удаления и изменения ................................... 408
11.2. Запросы Criteria ...................................................................................... 409
11.2.1. Метамодели.................................................................................... 410
11.2.2. CriteriaBuilder .................................................................................. 413
11.2.3. CriteriaQuery.................................................................................... 414
11.2.4. Корень запроса ............................................................................... 415
11.2.5. Предложение FROM ........................................................................ 419
11.2.6. Предложение SELECT ..................................................................... 419
11.3. Низкоуровневые запросы ....................................................................... 422
11.3.1. Динамические SQL-запросы ........................................................... 423
11.3.2. Именованные SQL-запросы ............................................................ 424
11.3.3. Хранимые процедуры ..................................................................... 425
11.4. В заключение .......................................................................................... 429
Глава 12. Использование CDI в EJB 3 .........................................430
12.1. Введение в CDI ....................................................................................... 431
12.1.1. Службы CDI ..................................................................................... 433
12.1.2. Отношения между CDI и EJB 3 ......................................................... 436
12.1.3. Отношения между CDI и JSF 2 ......................................................... 437
12.2. Компоненты CDI ...................................................................................... 437
12.2.1. Как пользоваться компонентами CDI ............................................... 438
12.2.2. Именование компонентов и их разрешение в выражениях EL .......... 439
12.2.3. Области видимости компонентов.................................................... 440
12.3. Следующее поколение механизмов внедрения зависимостей ................ 443
12.3.1. Внедрение с помощью @Inject ........................................................ 443
12.3.2. Фабричные методы ......................................................................... 445
12.3.3. Квалификаторы ............................................................................... 448
12.3.4. Методы уничтожения ...................................................................... 449
12.3.5. Определение альтернатив .............................................................. 450
12.4. Интерцепторы и декораторы ................................................................... 453
12.4.1. Привязка интерцепторов ................................................................ 453
12.4.2. Декораторы .................................................................................... 456
12.5. Стереотипы ............................................................................................ 457
12.6. Внедрение событий ................................................................................ 459
Стр.12
12
Оглавление
12.7. Диалоги .................................................................................................. 461
12.8. Эффективное использование CDI в EJB 3 ............................................... 467
12.9. В заключение .......................................................................................... 469
ЧАСТЬ IV
Ввод EJB в действие ..............................................................471
Глава 13. Упаковка приложений EJB 3 .......................................472
13.1. Упаковка приложений ............................................................................. 472
13.1.1. Строение системы модулей Java EE ................................................ 475
13.1.2. Загрузка модулей Java EE ............................................................... 476
13.2. Загрузка классов .................................................................................... 478
13.2.1. Основы загрузки классов ................................................................ 478
13.2.2. Загрузка классов в приложениях Java EE ........................................ 478
13.2.3. Зависимости между модулями Java EE ........................................... 481
13.3. Упаковка сеансовых компонентов и компонентов, управляемых
сообщениями .................................................................................................. 483
13.3.1. Упаковка EJB-JAR ........................................................................... 483
13.3.2. Упаковка компонентов EJB в модуль WAR ........................................ 485
13.3.3. XML против аннотаций .................................................................... 488
13.3.4. Переопределение настроек, указанных в аннотациях ..................... 492
13.3.5. Определение интерцепторов по умолчанию ................................... 493
13.4. Упаковка сущностей JPA ......................................................................... 494
13.4.1. Модуль доступа к хранимым данным............................................... 494
13.4.2. Описание модуля доступа к хранимым данным в persistence.xml .... 496
13.5. Упаковка компонентов CDI ...................................................................... 498
13.5.1. Модули CDI ..................................................................................... 498
13.5.2. Дескриптор развертывания beans.xml ............................................ 499
13.5.3. Атрибут bean-discovery-mode.......................................................... 500
13.6. Эффективные приемы и типичные проблемы развертывания ................. 501
13.6.1. Эффективные приемы упаковки и развертывания ........................... 501
13.6.2. Решение типичных проблем развертывания ................................... 503
13.7. В заключение .......................................................................................... 504
Глава 14. Использование веб-сокетов с EJB 3 .............................505
14.1. Ограничения схемы взаимодействий «запрос/ответ» ............................. 505
14.2. Введение в веб-сокеты ........................................................................... 507
14.2.1. Основы веб-сокетов........................................................................ 507
14.2.2. Веб-сокеты и AJAX .......................................................................... 511
14.2.3. Веб-сокеты и Comet ........................................................................ 513
14.3. Веб-сокеты и Java EE .............................................................................. 515
14.3.1. Конечные точки веб-сокетов ........................................................... 516
14.3.2. Интерфейс Session ......................................................................... 517
14.3.3. Кодеры и декодеры ......................................................................... 520
14.4. Веб-сокеты в приложении ActionBazaar .................................................. 523
14.4.1. Использование программных конечных точек ................................. 526
14.4.2. Использование аннотированных конечных точек ............................. 530
14.5. Эффективное использование веб-сокетов .............................................. 537
14.6. В заключение .......................................................................................... 539
Стр.13
Оглавление
13
Глава 15. Тестирование компонентов EJB ..................................541
15.1. Введение в тестирование ....................................................................... 541
15.1.1. Стратегии тестирования ................................................................. 542
15.2. Модульное тестирование компонентов EJB ............................................ 544
15.3. Интеграционное тестирование с использованием EJBContainer ............. 548
15.3.1. Настройка проекта .......................................................................... 549
15.3.2. Интеграционный тест ...................................................................... 552
15.4. Интеграционное тестирование с применением Arquillian ........................ 555
15.4.1. Настройка проекта .......................................................................... 556
15.4.2. Интеграционный тест ...................................................................... 560
15.5. Приемы эффективного тестирования ..................................................... 563
15.6. В заключение .......................................................................................... 565
Приложение А. Дескриптор развертывания, справочник ..............566
A.1. ejb-jar.xml .................................................................................................. 566
A.1.1.
................................................................................ 567
A.1.2. ........................................................................... 567
A.1.3. Интерцепторы .................................................................................. 571
A.1.4. ...................................................................... 571
Приложение B. Введение в Java EE 7 SDK ..................................576
B.1. Установка Java EE 7 SDK ........................................................................... 576
B.2. GlassFish Administration Console ................................................................ 581
B.3. Запуск и остановка GlassFish .................................................................... 584
B.4. Запуск приложения «Hello World» .............................................................. 586
Приложение C. Сертификационные экзамены разработчика
для EJB 3..............................................................................590
C.1. Начало процесса сертификации ............................................................... 591
C.2. Порядок прохождения сертификационных испытаний
для разработчиков EJB 3 ................................................................................. 593
C.3. Знания, необходимые для прохождения испытаний ................................. 595
C.4. Подготовка к испытаниям ......................................................................... 597
C.5. Сертификационные испытания ................................................................ 598
Предметный указатель ...........................................................600
Стр.14