Энтони Гонсалвес - Изучаем 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". [Страница - 299]
······Annotation[] annotations, MediaType mediaType) {
····return Customer.class.isAssignableFrom(type);
··}
··@Override
··public void writeTo(Customer customer, Class<?> type, Type gType,
······Annotation[] annotations, MediaType mediaType,
······MultivaluedMap<String, Object> httpHeaders,
··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,
······Annotation[] annotations, MediaType mediaType) {
····return customer.getId(). length() + 1 + customer.getFirstName(). length()
········+ 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,
······Annotation[] annotations, MediaType mediaType) {
····return Customer.class.isAssignableFrom(type);
··}
··@Override
··public Customer readFrom(Class<Customer> type, Type gType,
······Annotation[] annotations, MediaType mediaType,
······MultivaluedMap<String, String> httpHeaders, InputStream inputStream)
······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 Медиатипы --">Книги схожие с «Изучаем Java EE 7» по жанру, серии, автору или названию:
Елена Александровна Разумовская - Как быстро развить память для запоминания иностранных слов, цифр и любой информации Жанр: Руководства и инструкции |
Кейли Туран - Самоучитель по танцу живота Жанр: Руководства и инструкции Год издания: 2008 |
Михаил В Рытов - Ягодники. Руководство по разведению крыжовника и смородины Жанр: Сад и огород Год издания: 2012 |
Александра Демурчиду - Как поступить в зарубежный ВУЗ Жанр: Справочники Год издания: 2015 |