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


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

# 911, книга: До скончания века
автор: Барбара Картленд

Барбара Картленд Исторические любовные романы "До скончания века" - это чарующая эпопея, которая переносит читателей в вихрь страсти, заговоров и интриг на фоне пышного 18-го века. Барбара Картленд, мастер любовных романов, создала незабываемый шедевр, который увлечет и очарует читателей с первой страницы и до последней. История вращается вокруг Леди Александры Уиндем, юной наследницы богатого поместья. Невинная и прекрасная, она становится центром внимания двух самых...

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

для XML, относящиеся к классу JAXB (text/xml, application/xml) MultivaluedMap<String,String> Содержимое формы (application/x-www-form-urlencoded) javax.ws.rs.core StreamingOutput Все медиатипы (*/*), только с MessageBodyWriter

Обработка исключений

До сих пор мы обсуждали идеальный код, который исправно выполняется всегда и везде и не требует обработки исключений. К сожалению, жизнь не так хороша и рано или поздно вам придется столкнуться со сбоями, происходящими в ресурсах либо из-за получения невалидных данных, либо из-за ненадежности участков сети.

Метод ресурса может генерировать любое проверяемое или непроверяемое исключение. Непроверяемые исключения могут генерироваться повторно, а также проникать в базовый контейнер. Напротив, проверяемые исключения не могут генерироваться непосредственно и должны обертываться в исключения, специфичные для того или иного контейнера (ServletException, WebServiceException или WebApplicationException). Но вы также можете выдавать javax.ws.rs.WebApplicationException или его подклассы (BadRequestException, ForbiddenException, NotAcceptableException, NotAllowedException, NotAuthorizedException, NotFoundException, NotSupportedException). Исключение будет отлавливаться реализацией JAX-RS и преобразовываться в HTTP-ответ. Стандартная ошибка имеет код 500 и соответствует пустому сообщению. Но класс javax.ws.rs.WebApplicationException предлагает различные конструкторы, позволяющие выбрать конкретный код состояния (этот код определяется в перечислении javax.ws.rs.core.Response.Status) или объект. В листинге 15.18 метод getCustomer генерирует непроверяемое исключение (IllegalArgumentException), если идентификатор пользователя меньше 1000, либо код 404 — Не найдено, если запись, соответствующая определенному пользователю, не будет найдена в базе данных. Вместо этого можно было бы также выдать NotFoundException.


Листинг 15.18. Метод, генерирующий исключения
@Path("/customer")

public class CustomerRestService {

··@Inject

··private CustomerEJB customerEJB;


··@Path("{customerId}")

··public Customer getCustomer(@PathParam("customerId") Long customerId) {

····if (customerId < 1000)

······throw new IllegalArgumentException("Id must be greater than 1000!");


····Customer customer = customerEJB.find(customerId);

····if (customer == null)

······throw new WebApplicationException(Response.Status.NOT_FOUND);

····return customer;

··}

}

Чтобы держать код сухим[3], можно предоставить специальные поставщики отображения исключений. Такой поставщик отображает общее исключение на Response. Если будет сгенерировано такое исключение, то реализация JAX-RS отловит его и вызовет соответствующий поставщик отображения исключений. Поставщик отображения исключений является реализацией ExceptionMapper<E extends java.lang.Throwable>, которая сопровождается аннотацией @Provider. В листинге 15.19 исключение javax.persistence.EntityNotFoundException отображается в коде состояния 404 — Не найдено.


Листинг 15.19. Исключение JPA, отображаемое в коде состояния 404 — Не найдено
@Provider

public class EntityNotFoundMapper implements ExceptionMapper<EntityNotFoundException> {

··public Response toResponse(javax.persistence.EntityNotFoundException ex) {

····return Response.status(404). entity(ex.getMessage()). type(MediaType.TEXT_PLAIN). build();

··}

}

Жизненный цикл и обратные вызовы

При поступлении запроса происходит разрешение той REST-службы, которой он был адресован, и создается новый экземпляр соответствующего класса. Соответственно, жизненный цикл такой службы является «позапросным»; служба может игнорировать проблемы, связанные с параллелизмом, и безопасно пользоваться переменными экземпляров.

При развертывании в контейнере Java EE (сервлетном или EJB) классы ресурсов и поставщики JAX-RS также могут использовать описанные в JSR 250 технологию управления жизненным циклом и аннотации безопасности: @PostConstruct, @PreDestroy, @RunAs, @RolesAllowed, @PermitAll, @DenyAll и @DeclareRoles. Жизненный цикл ресурса может использовать аннотации @PostConstruct и @PreDestroy для добавления бизнес-логики уже после создания ресурса или перед его удалением. На рис. 15.3 показан жизненный цикл, свойственный большинству компонентов платформы Java EE.


Книгаго: Изучаем Java EE 7. Иллюстрация № 384 Рис. 15.3. Жизненный цикл ресурса

Упаковка

Веб-службы в стиле REST могут упаковываться в файлы WAR-архивов или EJB JAR-архивов в зависимости от того, готовите вы службу для веб-профиля или полномасштабную службу для Java EE 7. Не забывайте, что веб-служба в стиле REST также может сопровождаться аннотациями @Stateless или @Singleton — в таком случае с ней можно будет использовать службы --">

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


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