Энтони Гонсалвес - Изучаем Java EE 7
Название: | Изучаем Java EE 7 | |
Автор: | Энтони Гонсалвес | |
Жанр: | Руководства и инструкции, Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Программирование: прочее, Java, Java Script | |
Изадано в серии: | неизвестно | |
Издательство: | Питер | |
Год издания: | 2014 | |
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 EE 7". [Страница - 301]
Вызов веб-служб в стиле REST
Итак, вы уже научились писать веб-службы с передачей состояния представления, которые могут обрабатывать данные, выполнять в базе данных операции из разряда CRUD, доставлять информацию с сервера и т. д. Как получить к ним доступ? Как следует из рис. 15.1, для этого нужно просто сделать HTTP-запрос к URI. Воспользуйтесь любым инструментом, обеспечивающим такую возможность, и свободно вызывайте любые описанные выше службы в стиле REST.Первый мыслимый инструмент такого рода — любой браузер. Откройте браузер, введите URI в адресную строку — и получите визуальное представление. К сожалению, браузеры работают только с HTTP-методами GET и POST. Если вы хотите добиться от браузера большего, к нему вполне можно подключить несколько модулей. Такие подключаемые модули поддерживают работу с методами PUT и DELETE (в качестве примера можно привести Postman из Chrome). Еще один очень функциональный инструмент, которым можно воспользоваться, — cUrl. Этот инструмент командной строки обеспечивает доступ к деталям HTTP-протокола и, в частности, позволяет вызывать веб-службы REST.
До выхода JAX-RS 2.0 в Java отсутствовал стандартный способ простого вызова веб-служб в стиле REST. Приходилось либо полагаться на низкоуровневый API java.net.HttpURLConnection, либо пользоваться проприетарным API того или иного фреймворка (например, Jersey, Resteasy или Restlet). JAX-RS ликвидирует этот пробел с помощью своего текучего, легкого в использовании API для выстраивания запросов.
Клиентский API
В JAX-RS 2.0 появился новый клиентский API, с помощью которого можно с легкостью делать HTTP-запросы к удаленным REST-службам (несмотря на все низкоуровневые функции протокола HTTP). Речь идет о текучем API для построения запросов (использующем шаблон проектирования «Построитель»), в котором задействуется небольшое количество классов и интерфейсов (обзор пакета javax.ws.rs.client представлен в табл. 15.8, а информация об API Response приводилась в табл. 15.6). Очень часто вам придется сталкиваться с тремя основными классами: Client, WebTarget и Response. Интерфейс Client (получаемый с помощью ClientBuilder) — это построитель интерфейсов WebTarget. Интерфейс WebTarget представляет самостоятельный URI, с которого вы можете инициировать запросы для получения Response. На основании этого ответа можно проверять HTTP-состояние, длину или cookie. Но гораздо важнее, что вы можете получать содержимое ответа. Это делается с помощью класса Entity.
Таблица 15.8. Основные классы и интерфейсы из пакета javax.ws.rs.client
Класс/интерфейс Описание Client Это основная входная точка для текучего API, используемого для построения и выполнения клиентских ответов ClientBuilder Входная точка для клиентского API, используемая для начальной загрузки экземпляров Client Configurable Клиентская конфигурационная форма Client, WebTarget и Invocation Entity Инкапсулирует объект сообщения, включая ассоциированную информацию о вариантах Invocation Запрос, готовый к исполнению Invocation.Builder Построитель вызовов клиентского интерфейса WebTarget Цель ресурса, идентифицируемая URI ресурсаПошагово рассмотрим этот список, чтобы разобраться, как работать с новым API. Затем объединим все приобретенные знания и протестируем веб-службу в стиле REST.
Начальная загрузка клиента
Основной входной точкой в данный API является интерфейс Client. Он конфигурирует HTTP-соединения и управляет ими. Кроме того, это фабрика для WebTargets, поэтому данный интерфейс обладает набором методов для создания ссылок на ресурсы и вызова ресурсов. Экземпляры Client создаются с помощью одного из статических методов класса ClientBuilder:Client client = ClientBuilder.newClient();
В примере показан способ создания экземпляра Client с помощью стандартной реализации. Мы также можем запросить конкретную специальную реализацию Client, воспользовавшись нужной конфигурацией. Например, следующий код регистрирует поставщика CustomCustomerReader (см. листинг 15.17) и устанавливает некоторые свойства:
Client client = ClientBuilder.newClient();
client.configuration().