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


«Каневская битва 16 июля 1662 года» - это научно-популярная книга, посвященная одному из ключевых событий Русско-польской войны 1654-1667 годов. Автор, Игорь Бабулин, является признанным историком, специализирующимся на военной истории России. Книга состоит из 12 глав, которые подробно рассматривают различные аспекты битвы при Каневе. В ней приводятся подробные описания сил, задействованных в конфликте, а также стратегий и тактики, использованных обеими сторонами. Бабулин также анализирует...

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

«Изучаем Java EE 7» [Картинка № 374]">

······Annotation[] annotations, MediaType mediaType) {

····return Customer.class.isAssignableFrom(type);

··}

··@Override

··public void writeTo(Customer customer, Class<?> type, Type gType, Книгаго: Изучаем Java EE 7. Иллюстрация № 375

······Annotation[] annotations, MediaType mediaType, Книгаго: Изучаем Java EE 7. Иллюстрация № 376

······MultivaluedMap<String, Object> httpHeaders, Книгаго: Изучаем Java EE 7. Иллюстрация № 377

··OutputStream outputStream) throws IOException, WebApplicationException {


····outputStream.write(customer.getId(). getBytes());

····outputStream.write('/');

····outputStream.write(customer.getFirstName(). getBytes());

····outputStream.write('/');

····outputStream.write(customer.getLastName(). getBytes());

··}


··@Override

··public long getSize(Customer customer, Class<?> type, Type genericType, Книгаго: Изучаем Java EE 7. Иллюстрация № 378

······Annotation[] annotations, MediaType mediaType) {

····return customer.getId(). length() + 1 + customer.getFirstName(). length() Книгаго: Изучаем Java EE 7. Иллюстрация № 379

········+ 1 + customer.getLastName(). length();

··}

}

С другой стороны, для отображения тела запроса на тип Java класс должен реализовывать интерфейс javax.ws.rs.ext.MessageBodyReader и сопровождаться аннотацией @Provider. По умолчанию предполагается, что такая реализация должна применять все медиатипы (*/*). Аннотация @Consumes в листинге 15.17 используется для указания нашего специального медиатипа. Метод readFrom принимает поток данных ввода, размечает его с помощью разделительного символа / и преобразует в объект Customer. Реализации MessageBodyReader и MessageBodyWriter могут генерировать исключение WebApplicationException, если они не способны создать какое-либо представление.


Листинг 15.17. Поставщик, использующий специальный поток данных и создающий объект Customer
@Provider

@Consumes("custom/format")

public class CustomCustomerReader implements MessageBodyReader<Customer> {

··@Override

··public boolean isReadable(Class<?> type, Type genericType, Книгаго: Изучаем Java EE 7. Иллюстрация № 380

······Annotation[] annotations, MediaType mediaType) {

····return Customer.class.isAssignableFrom(type);

··}


··@Override

··public Customer readFrom(Class<Customer> type, Type gType, Книгаго: Изучаем Java EE 7. Иллюстрация № 381

······Annotation[] annotations, MediaType mediaType, Книгаго: Изучаем Java EE 7. Иллюстрация № 382

······MultivaluedMap<String, String> httpHeaders, InputStream inputStream) Книгаго: Изучаем Java EE 7. Иллюстрация № 383

······throws IOException, WebApplicationException {

····String str = convertStreamToString(inputStream);

····StringTokenizer s = new StringTokenizer(str, "/");


····Customer customer = new Customer();

····customer.setId(s.nextToken());

····customer.setFirstName(s.nextToken());

····customer.setLastName(s.nextToken());


····return customer;

··}

}

Имея CustomCustomerWriter и CustomCustomerReader, мы можем обмениваться данными, представленными в нашем специальном формате. Обмен идет в обоих направлениях между службой и потребителем. Веб-службы в стиле REST должны просто объявлять верный медиатип, а среда времени исполнения JAX-RS сделает остальное:

@GET

@Produces("custom/format")

public Customer getCustomCustomer () {

··return new Customer("1234", "Джон", "Смит");

}

Наш пользовательский формат представляет собой особый случай, но при работе с обычными медиатипами реализация JAX-RS применяет несколько стандартных поставщиков объектов (табл. 15.7). Поэтому в наиболее распространенных случаях вам не придется реализовывать собственные механизмы для считывания и записи.


Таблица 15.7. Поставщики, применяемые в реализации JAX-RS по умолчанию
Тип Описание byte[] Все медиатипы (*/*) java.lang.String Все медиатипы (*/*) java.io.InputStream Все медиатипы (*/*) java.io.Reader Все медиатипы (*/*) java.io.File Все медиатипы (*/*) javax.activation.DataSource Все медиатипы (*/*) javax.xml.transform.Source XML-типы (text/xml, application/xml) javax.xml.bind.JAXBElement Медиатипы --">

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


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