Библиотека knigago >> Справочная литература >> Руководства и инструкции >> Изучаем Java EE 7


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 2134, книга: Оплот добродетели
автор: Екатерина Лесина

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

Энтони Гонсалвес - Изучаем Java EE 7

Изучаем Java EE 7
Книга - Изучаем Java EE 7.  Энтони Гонсалвес  - прочитать полностью в библиотеке КнигаГо
Название:
Изучаем Java EE 7
Энтони Гонсалвес

Жанр:

Руководства и инструкции, Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Программирование: прочее, Java, Java Script

Изадано в серии:

неизвестно

Издательство:

Питер

Год издания:

ISBN:

978-5-496-00942-3

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Изучаем Java EE 7"

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java.

Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода.

Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP). В ней вы найдете максимально ценную информацию, изложенную с точки зрения эксперта по технологиям Java для предприятий.

Благодаря этой книге вы:

— познакомитесь с новейшей версией платформы Java EE;

— исследуете и научитесь использовать API EJB и JPA — от компонентов-сущностей, компонентов-сеансов до компонентов, управляемых сообщениями, и многого другого;

— откроете для себя API для разработки на веб-уровне, в частности JSF, Facelet и Expression Language;

— научитесь обращаться с веб-службами SOAP и RESTful, а также с другими службами, доступными в новейшей версии Java EE;

— узнаете, как создавать динамические пользовательские интерфейсы для корпоративных и транзакционных Java-приложений.


К этой книге применимы такие ключевые слова (теги) как: языки программирования, Java, программирование на Java, веб-разработка, пользовательский интерфейс (UI)

Читаем онлайн "Изучаем Java EE 7". [Страница - 308]

id="GET{id}" name="GET">

··········<response>

············<representation mediaType="application/xml"/>

············<representation mediaType="application/json"/>

··········</response>

········</method>

········<method id="DELETE{id}" name="DELETE"/>

······</resource>

····</resource>

··…

··</resources>

</application>

Код WADL в листинге 15.29 описывает корневой путь (http://localhost:8080/chapter15-service-1.0/rs/) и все подпути, доступные в REST-службе (/book и {id}). Кроме того, здесь описаны HTTP-методы, которые вы можете вызывать (POST, GET, DELETE…).

Написание интеграционного теста BookRestServiceIT

Теперь, когда код упакован и развернут в GlassFish, мы можем написать интеграционный тест, в ходе которого будем выполнять HTTP-запросы к веб-службе REST. При этом воспользуемся новым API JAX-RS 2.0 Client. Интеграционные тесты отличаются от модульных, так как в них ваш код проверяется неизолированно. Этим тестам требуются все контейнерные службы. Как правило, если GlassFish и Derby в данный момент не работают, код из листинга 15.30 тоже не сработает.

Первые два метода тестируют отказы. Тест shouldNotCreateANullBook гарантирует, что вы не сможете создать книгу с нулевым объектом Book. Итак, он посылает нулевую сущность и ожидает получить код состояния 400 — Плохой запрос. В тестовом случае shouldNotFindTheBookID передается неизвестный ID книги, после чего предполагается получить код состояния 404 — Не найдено.

Тестовый случай shouldCreateAndDeleteABook немного сложнее первого, так как в нем вызывается несколько операций. Во-первых, этот тест отправляет XML-представление объекта Book и позволяет убедиться, что возвращается код состояния 201 — Создан. Переменная bookURI соответствует URI только что созданной записи о книге. В тестовом случае этот URI применяется для запроса новой книги. Затем код считывает тело сообщения, приводит его к классу Book (book = response.readEntity(Book.class)) и выполняет утверждения, гарантирующие корректность значений. Затем вызывается метод DELETE, удаляющий запись о книге из базы данных и удостоверяющий, что в ответ приходит код состояния 204 — Нет содержимого. Последний запрос GET, выполняемый с ресурсом, гарантирует удаление этого ресурса, проверяя наличие кода состояния 404 — Не найдено.


Листинг 15.30. Класс ApplicationConfig, объявляющий URL-шаблон /rs
public class BookRestServiceIT {


··private static URI uri = UriBuilder.

··fromUri("http://localhost/chapter15-service-1.0/rs/book"). port(8080). build ();

··private static Client client = ClientBuilder.newClient();


··@Test

··public void shouldNotCreateANullBook() throws JAXBException {


····// Отправка нулевой книги методом POST

····Response response = client.target(uri). request(). post(Entity.entity(null, Книгаго: Изучаем Java EE 7. Иллюстрация № 409

····MediaType.APPLICATION_XML));

····assertEquals(Response.Status.BAD_REQUEST, response.getStatusInfo());

··}


··@Test

··public void shouldNotFindTheBookID() throws JAXBException {


····// Получение книги с неизвестным ID методом GET

····Response response = client.target(uri). path("unknownID"). request(). get ();

····assertEquals(Response.Status.NOT_FOUND, response.getStatusInfo());

··}


··@Test

··public void shouldCreateAndDeleteABook() throws JAXBException {


····Book book = new Book("H2G2", 12.5F, "Science book", "1-84023-742-2", 354, false);

····// Посылаем книгу методом POST

····Response response = client.target(uri). request(). post(Entity.entity(book, Книгаго: Изучаем Java EE 7. Иллюстрация № 410

····MediaType.APPLICATION_XML));

····assertEquals(Response.Status.CREATED, response.getStatusInfo());

····URI bookURI = response.getLocation();


····// Имея местоположнение, получаем книгу методом GET

····response = client.target(bookURI). request(). get();

····book = response.readEntity(Book.class);

····assertEquals(Response.Status.OK, response.getStatusInfo());

····assertEquals("H2G2", book.getTitle());


····// Получаем id книги и удаляем ее методом DELETE

····String bookId = bookURI.toString(). split("/")[6];

····response = client.target(uri). path(bookId). request(). delete();

····assertEquals(Response.Status.NO_CONTENT, response.getStatusInfo());


····// Методом GET получаем книгу Book и проверяем, была ли она удалена

····response = client.target(bookURI). request(). get();

····assertEquals(Response.Status.NOT_FOUND, response.getStatusInfo());

··}

}

Убедитесь, что GlassFish и Derby работают нормально и приложение развернуто, а затем выполните этот тест с применением плагина Maven Failsafe. Для этого введите в командной строке следующую команду Maven:

$ mvn failsafe: integration-test

Резюме

В предыдущей главе были рассмотрены веб-службы SOAP. Теперь вы уже должны понимать разницу между веб-службами, работающими на базе --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.