Веб-сервисы. SOA-based архитектура
Скрытое содержимое.
Создание/тестирование формы модуля Web
2.2 Демаршализовать Addressee.xml и сравнить с new Addressee("Name", "")
2.3 Провалидировать Addressee.xml
2.4 Убедится в SAXParseException при валидации InvalidAddressee.xml
Для чтения файлов использовать IOUtils.toString библиотеки commons-io%commons-io%2.4
4. Включить схему внутрь wsdl и опубликовать mailService на основе кастомизированной схемы.
Занятие 3
Разбор Домашнего Задания.
Basic Authorization.
Реализовать аутентификацию через Soap Handler.
Занятие 5
Разбор ДЗ.
Персистентность.
Сохранение, отображение истории почты.
Исключить из MailWSClientIT.testSendMailAsync ожидание Thread.sleep.
Занятие 8
Сканирование истории почты
Сделать SecurityException через WebStateException.
Сделать читаемым отображение ошибок отправки почты.
Занятие 9
Динамическое конфигурирование.
Добавить в конфигурацию модуля web параметр rowNumber (web.rowNumber = 10 в конфигурации)
Сделать его атрибутом JMX и выводить соответствующее rowNumber число строк таблицы истории почты.
Занятие 10
Асинхронность и маштабируемость.
Скрытое содержимое.
Скрытое содержимое.
План вебинараОписание:
Для участников, имеющих опыт программирования на Java.
Разработка полнофункциональнго многомодульного Maven проекта: web-приложения, почтового сервиса и вспомогательных модулей с использованием Веб и REST сервисов (JAX-WS, JAX-RS), jQuery, Execution Framework, JavaMail, библиотек Apache Commons, AKKA и персистентностью данных c динамическим конфигурирование модулей по http и JMX..
Для построения приложения будут использоваться инструменты промышленной java разработки:
- На тренинге подробно разбирается написание с нуля полнофункциональнго многомодульного проекта: web-приложения, почтового сервиса и вспомогательных модулей с использованием Веб и REST сервисов (, ), , Execution Framework, JavaMail, библиотек , и персистентностью данных c динамическим конфигурирование модулей по http и JMX.
- Основное внимание будет уделяться способам решения многочисленных проблем разработки а также структурному (красивому и надежному) java кодированию и модульности приложения.
- После каждого занятия предлагается домашнего задания, которое разбирается в начале следующего урока.
План вебинара
- Java 7
- Веб-контейнер
- Объектно-реляционная СУБД
- Среда разработки
- Инструмент постороения
- Система контроля версий
- Библиотеки
- Библиотека JavaScript
- Интеграционные и модульные тесты
- Система логгирования и
- Библиотека конфигурирования
- Инструмент тестирования веб-сервисов
- Средство отладки веб-приложений
Занятие 1
Вводная часть
- Основные характеристики разрабатываемого на курсе приложения..
- как повышение абстракции производства ПО
- Платформа Java. Преимущества и недостатки. Java 8.
- Сравнение с Python, Scala. Элементы и библиотеки ФП в Java
Литература:
- Среда сборки проектов .
- . Snapshots
- . Другие инструменты сборки.
Литература:
- Настройки IDEA и проекта: кодировка, java version, plugins.
- Создание в среде IDEA многомодульного maven проекта. Структура проекта.
- Настройка Maven: кодировка, java version, зависимости
- Системы логгирование: .
- Создание шаблона проекта.
- Настройка доступа к общим ресурсам,
Создание/тестирование формы модуля Web
- Создание web формы для отправки email. Стили css. Привязка формы к сервлету.
- Мониторинг сети, консоль в firebug
- Сборка, запуск, локальный и удаленный debug проекта, способы деплоя в Tomcat,
- tomcat7-maven-plugin:
- SOAP. Преимущества/недостатки веб-сервисов. Расширения.
- Реализация веб-сервисов в Java. JAX-RPC,
- Создание API и реализации веб-сервиса MailService.
- Деплой и тестирование через .
Литература:
Примеры:
- Работа с JAXB.
- Включение wsdl в сервис для публикации.
- Генерация java кода по WSDL
- Модифицировать Addressee для вывода в формате soa-ws2\mail-api\src\test\resources\Addressee.xml
- Сделать схему Addressee.xsd, положить рядом с Addressee.xml
- На основе JaxbSingleParser написать JUnit4 тест для проверки маршалинга/демаршалинга/валидации Addressee:
2.2 Демаршализовать Addressee.xml и сравнить с new Addressee("Name", "")
2.3 Провалидировать Addressee.xml
2.4 Убедится в SAXParseException при валидации InvalidAddressee.xml
Для чтения файлов использовать IOUtils.toString библиотеки commons-io%commons-io%2.4
4. Включить схему внутрь wsdl и опубликовать mailService на основе кастомизированной схемы.
Занятие 3
Разбор Домашнего Задания.
- Стандартные библиотеки ,
- Публикация веб сервиса из main(). Дабавлние wsdl
- Выделение из wsdl общей части
- Создание клиента почтового сервиса.
- Тестирование с помощью
- Интеграционное тестирование,
- Логгирование SOAP на стороне клиента.
- Логгирование и статистика трафика опубликованного веб-сервиса.
- Добавить в имплементацию сервиса логин/пароль.
- Добавить в интеграционные тесты фазу pre-integration-test (запуска сервиса) и post-integration-test (shutdown).
Basic Authorization.
- Выделение общего клиента веб сервиса
- Конфигурирование приложения: , ,
- Конфигурирование параметров почтового сервера.
- Конфигурирование значание по умолчанию (через include)
- Подключение клиента к модулю Web.
- Java Mail. Библиотека .
- Реализация отправки письма.
Реализовать аутентификацию через Soap Handler.
Занятие 5
Разбор ДЗ.
- wsimport binding.
- SoapHandler аутентификация.
- Приатачиваем вложения к почте
- Генерация обновленного WSDL через wsgen
- Веб-сервисы:
- Тестирование вложений через
- Стандарт MIME. Обрабатываем вложения на форме:
- Загрузка файла вместе в полями формы.
- Вызов клиента с вложениями.
- Дополнить интеграционные тесты проверкой на неавторизованный доступ.
- Попробовать задать код ответа сервера в SoapServerSecurityHandler через MessageContext.HTTP_RESPONSE_CODE.
- Пофиксить проблему отправки почты с пустыми subject и body.
Персистентность.
- .
- Обзор Java persistence solution: , , , ORM (Hibernate, , , ). .
- СУБД .
- Работа с базой: создание базы, настройка IDEA Database.
- Создание таблицы. Денормализация
- Миграция базы.
- Работа с DB через DataSource, настройка tomcat.
- Настройка работы с DataSource из JUnit.
- Работа с SQL:
- Запись в базу. Обертка над
- . Интеграция с
- Поддержка Json.
- Дополнить REST сервис авторизацией (логин/ пароль те же, что и у веб сервиса).
- Сделать JUnit на охранение/ чтение из базы.
- Дополнить интеграционные тесты проверкой на неавторизованный доступ.
Сохранение, отображение истории почты.
- Сохранение истории почты при отсылке
- Библиотека JavaScript .
- Добавляем таблицу отсылки почты на UI
- Добавление в UI отображения состояния почты
- JavaScript debug в IDEA
- vs Java Execution framework
- Добавление в клиенте асинхронных вызовов.
Исключить из MailWSClientIT.testSendMailAsync ожидание Thread.sleep.
Занятие 8
Сканирование истории почты
- Добавление в Exception source.
- Конфигурирация сканирования.
- Добавление в сканирование вложений
- Инициализация конфигурации при старте сервиса
Сделать SecurityException через WebStateException.
Сделать читаемым отображение ошибок отправки почты.
Занятие 9
Динамическое конфигурирование.
- Просмотр и изменение конфигурации по http
- Добавление в проект атрибутов модуля maven
Maven Groovy cкрптинг.- Настройка Tomcat на удаленное администрирование по JMX
- .
- .
Добавить в конфигурацию модуля web параметр rowNumber (web.rowNumber = 10 в конфигурации)
Сделать его атрибутом JMX и выводить соответствующее rowNumber число строк таблицы истории почты.
Занятие 10
Асинхронность и маштабируемость.
- Асинхронные сервлеты 3.x в Tomcat
- Проблема MemoryLeak.
- Интеграция akka-remote в приложение.
Скрытое содержимое.
http://javawebinar.ru/masterjava