Библиотека knigago >> Компьютеры: Разработка ПО >> Программирование: прочее >> Изучаем Java EE 7


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

# 1078, книга: Герой обратной стороны IV
автор: Зигмунд Крафт

"Герой обратной стороны IV" Зигмунда Крафта - захватывающее и динамичное продолжение эпической серии боевой фантастики. Эта книга, четвертая из серии, переносит читателей обратно в мир, раздираемый войной, где добро и зло сталкиваются в яростной битве. Автор искусно создает сложный и напряженный сюжет, в котором действие преобладает над всем остальным. Битвы описаны ярко и захватывающе, заставляя читателя ощущать каждый удар и выстрел. Персонажи хорошо проработаны и вызывают...

СЛУЧАЙНАЯ КНИГА

Энтони Гонсалвес - Изучаем 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". [Страница - 302]

register(CustomCustomerReader.class). setProperty("MyProperty", 1234);


Цели и вызовы
Имея 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 = Книгаго: Изучаем Java EE 7. Иллюстрация № 385

····ClientBuilder.newClient(). target("http://www.myserver.com/book") Книгаго: Изучаем Java EE 7. Иллюстрация № 386

····.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. Иллюстрация № 387

--">

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


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