Данный курс охватывает проектирование и создание SOAP и RESTful web сервисов и клиентов. Слушатели используют интегрированную среду разработки (IDE) NetBeans для создания JAX-WS и JAX-RS web сервисов и их развертывания на Oracle WebLogic Server 12c. Большинство рассмотренных тем переносимы на случай любых серверов приложений, поддерживающих стандарты Java EE 6 web сервисов.
Слушатели изучают:
Создание XML документов и XML схем с использованием пространств имен XML
Производство и потребление XML и JSON контента с помощью JAXB
WSDL файлы и их значение для Web сервисов, основанных на SOAP, а также выбор между top-down (WSDL first) или bottom-up (code first) подходами к разработке SOAP web сервисов
Осуществление запросов к web сервисам, основанным на стандартах SOAP, и их реализация с помощью JAX-WS (Metro Stack)
Реализация REST практик при создании web сервисов с использованием JAX-RS спецификации (Jersey Stack)
Обеспечение безопасности Web сервисов с помощью Java EE стандартов безопасности, расширений WS-Security и OAuth 1.0a
Необходимая предварительная подготовка:
Java SE7 Fundamentals
Java SE 7 Programming
Рекомендуемая предварительная подготовка:
Java SE 7: Develop Rich Client Applications
Java Design Patterns
Цель курса:
Применение JAX-WS API при создании SOAP Web сервисов и клиентов
Применение the JAX-RS API при создании RESTful Web сервисов
Обеспечение безопасности Web сервисов с помощью WS-Security, Jersey и OAuth
Обработка ошибок и исключений в Web сервисах и клиентах
Создание XML документов с использованием деклараций пространств имен и XML Schema
Производство и потребление XML и JSON контента с помощью JAXB
Создание клиентов RESTful Web сервисов с помощью Jersey Client API
Понимание роли Web сервисов
Аудитория курса:
Разработчики J2EE
Разработчики Java
Разработчики Java EE
Введение в Web сервисы
Зачем нужны web сервисы. Определение web сервисов. Характеристики web сервиса. Применение XML и JSON в web сервисах. Два основных подхода к разработке web сервисов. Преимущества разработки web сервисов в Java EE контейнере.
XML
Достоинства XML. Создание XML декларации. Сбор компонент XML документа. Декларирование и использование пространств имен XML. Валидация XML документов с помощью XML Schema. Создание XML Schema.
JAXB
Обзор различных Java XML APIs. Достоинства JAXB. Демаршализация XML данных с помощью JAXB. Маршализация XML данных с помощью JAXB. Компилирование XML Schema для Java. Генерирование XML Schema из Java классов. Применение аннотаций JAXB связывания. Создание External Binding Configuration Files.
SOAP Web сервисы
Структура SOAP сообщения. Использование WSDL файлов для определения web сервисов. WS-I базовый профиль и WS-Policy.
Создание JAX-WS клиентов
Средства генерирования артефактов JAX-WS клиента. Вызов SOAP web сервисов с помощью JAX-WS в a Java SE окружении. Вызов SOAP web сервисов с помощью JAX-WS в a Java EE окружении. Использование настроек JAXB связывания SOAP web сервисом. Создание JAX-WS Dispatch клиента. Создание клиента, пользующегося услугами сервисов со включенным WS-Policy (WS-MakeConnection).
RESTful Web сервисы
RESTful архитектура и ее применение к web сервисам. Проектирование RESTful web сервиса и определение ресурсов. Управление a RESTful web сервисом с использованием hypermedia. Выбор правильного HTTP метода в случае, когда нужно избегать дублирования запросов. Определение статуса результата Web сервиса по коду HTTP отклика. Версионирование RESTful web сервисов.
Создание RESTful клиентов в Java
Использование Java SE APIs для осуществления HTTP запросов. Использование Jersey клиентских APIs для осуществления HTTP запросов. Обработка XML и JSON на клиенте RESTful web сервиса.
Bottom-Up JAX-WS Web сервисы
Преимущества Code First Design. Создание JAX-WS POJO конечных точек. Создание JAX-WS EJB конечных точек.
Top-Down JAX-WS Web сервисы
Преимущества WSDL First Design. Генерирование интерфейсов конечных точек сервиса (SEI) с помощью WSDL. Реализация интерфейсов конечных точек сервиса. Настройка генерирования SEI.
JAX-RS RESTful Web сервисы
Загрузка, установка и конфигурирование Jersey. Создание подклассов приложения. Создание классов ресурсов. Создание методов ресурсов, методов субресурсов и методов локаторов субресурсов. Производство и потребление XML и JSON контента с помощью JAX-RS.
Обработка ошибок в Web сервисах
Каким образом SOAP web сервисы сообщают об ошибках. Каким образом REST web сервисы сообщают об ошибках. Возвращение ошибок SOAP. Возвращение HTTP кода состояния ошибки. Соответствие выброшенных исключений HTTP кодам состояния. Обработка ошибок с помощью SOAP кдиентов. Обработка ошибок с помощью Jersey клиентов.
Концепции безопасности
Что такое аутентификация, авторизация и конфиденциальность. Применение Basic Java EE Security с использованием дескрипторов развертывания (web.xml). Создание пользователей и групп и сопоставление им ролей приложений. Определение возможных направлений атак на web сервисы.
WS-Security
Предназначение WS-Policy, WS-SecurityPolicy, WS-Security. Конфигурирование WebLogic сервера для WS-Security. Применение WS-Policy к WebLogic JAX-WS Web сервисам. Подпись и шифрование SOAP сообщений с помощью WS-Security.
Обеспечение безопасности Web сервисов с помощью Jersey
Применение аннотаций безопасности JSR-250, таких, как @RolesAllowed. Включение набора фильтров с помощью RolesAllowedResourceFilterFactory. Получение SecurityContext и обеспечение безопасности программным образом. Аутентификация с помощью Jersey Client API.
OAuth 1.1a с использованием Jersey
Предназначение OAuth. Жизненный цикл запроса при использовании OAuth. Создание сервисов с включенным OAuth с помощью Jersey. Создание клиентов с включенным OAuth с помощью Jersey.