Энтони Гонсалвес - Изучаем 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, программирование на Java, веб-разработка, пользовательский интерфейс (UI)
Читаем онлайн "Изучаем Java EE 7". [Страница - 302]
Цели и вызовы
Имея Client, вы можете выбрать в качестве цели URI определенной веб-службы в стиле REST и вызывать в ней конкретные HTTP-методы. Именно для таких операций нужны интерфейсы WebTarget и Invocation. Методы Client.target() — это фабрики для веб-целей, представляющие конкретный URI. Вы выстраиваете и выполняете запросы из экземпляра WebTarget. Можно создать WebTarget со строковым представлением URI:WebTarget target = client.target("http://www.myserver.com/book");
Можно также получить WebTarget от java.net.URI, javax.ws.rs.core.UriBuilder или javax.ws.rs.core.Link:
URI uri = new URI("http://www.myserver.com/book");
WebTarget target = client.target(uri);
Теперь у вас есть URI, на который нужно нацелиться. Переходим к построению HTTP-запроса. WebTarget обеспечивает такие операции с помощью Invocation.Builder. Чтобы инициировать простой HTTP-запрос GET к URI, достаточно написать:
Invocation invocation = target.request(). buildGet()
Invocation.Builder позволяет строить запросы GET, а также POST, PUT и DELETE. Кроме того, можно строить запрос для различных MIME-типов и даже добавлять параметры с информацией о пути, запросе и матрице. Для методов PUT и POST необходимо передавать параметр Entity, представляющий полезную нагрузку для отправки веб-службе в стиле REST:
target.request(). buildDelete();
target.queryParam("author", "Eloise"). request(). buildGet();
target.path(bookId). request(). buildGet();
target.request(MediaType.APPLICATION_XML). buildGet();
target.request(MediaType.APPLICATION_XML). acceptLanguage("pt"). buildGet();
target.request(). buildPost(Entity.entity(new Book()));
Этот код просто строит Invocation. Затем понадобится вызвать метод invoke() для активизации вашей удаленной веб-службы в стиле REST и получить обратно объект Response, который определяет соглашение (контракт) с возвращаемым экземпляром. Именно Response вы и применяете:
Response response = invocation.invoke();
Итак, если собрать все вместе, то следующие строки кода понадобятся для вызова метода GET в удаленной REST-службе, расположенной по ссылке http://www.myserver.com/book. При этом возвращается значение text/plain:
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://www.myserver.com/book");
Invocation invocation = target.request(MediaType.TEXT_PLAIN). buildGet();
Response response = invocation.invoke();
Благодаря API построителя и некоторым полезным сокращениям аналогичное поведение можно выразить всего в одной строке кода:
Response response =
····ClientBuilder.newClient(). target("http://www.myserver.com/book")
····.request(MediaType.TEXT_PLAIN). get();
Далее рассмотрим, как манипулировать Response и использовать объекты.
Использование ответов
Класс Response позволяет потребителю в определенной степени управлять HTTP-ответами, возвращаемыми от веб-службы в стиле REST. С помощью этого API можно проверять код состояния HTTP, заголовки, cookie и, конечно же, тело сообщения (то есть объект, или сущность). В коде, приведенном ниже, используются встроенные методы для обращения к определенной низкоуровневой информации о HTTP — в частности, они позволяют узнать код состояния, длину тела сообщения, дату отправки или любой HTTP-заголовок:assertTrue(response.getStatusInfo() == Response.Status.OK);
assertTrue(response.getLength() == 4);
assertTrue(response.getDate()!= null);
assertTrue(response.getHeaderString("Content-type"). equals("text/plain"));
Но в большинстве случаев нам требуется получить от Response тот объект, который был отправлен веб-службой в стиле REST. Метод readEntity считывает входной поток данных сообщения, как экземпляр указанного класса Java. Для этого используется интерфейс MessageBodyReader, поддерживающий отображение потока данных сообщения на требуемый тип. Таким образом, если вы укажете, что вам нужна строка (String), то среда времени исполнения JAX-RS применит действующий по умолчанию считыватель строк:
String body = response.readEntity(String.class);
Когда метод readEntity() вызывается с POJO, среде времени исполнения JAX-RS требуется интерфейс MessageBodyReader, определяющий тип содержимого ответа путем сопоставления. Например, если Book представляет собой компонент JAXB, а ваше содержимое относится к типу XML, то JAX-RS делегирует среде исполнения JAXB демаршалинг потока данных XML в POJO Book:
Book book = response.readEntity(Book.class);
Объединяя все вышеизложенное, следующий код вызывает удаленную веб-службу в стиле REST и получает возвращенную строковую сущность:
Response response =
--">Книги схожие с «Изучаем Java EE 7» по жанру, серии, автору или названию:
Мария Павловна Згурская - Оригами Жанр: Хобби и ремесла: прочее Год издания: 2011 |
Александра Демурчиду - Как поступить в зарубежный ВУЗ Жанр: Справочники Год издания: 2015 |
Александр Каниовский - Горные лыжи для чайников. Карвинговая техника (СИ) Жанр: Руководства и инструкции |
Федор Михайлович Жигарев, Сергей Иванович Карзинкин - Мотоциклы Жанр: Руководства и инструкции Год издания: 1956 |