JAX-RS 2.1 Java API для веб-служб RESTful был выпущен с поддержкой событий, отправляемых сервером, JSON-B и улучшенной поддержкой JSON-P.
API также будет иметь реактивное расширение клиентского API со встроенной поддержкой Java 8 CompletionStage и точкой расширения для других реактивных API, таких как RxJava.
Основная функция, ресурсы серверных отправленных событий (SSE), вводит специальный тип, называемый SseEventSink, и создает текст/поток событий. Клиенты SSE используют SseEventSource для чтения событий из соединения. Сантьяго Перикас-Гирцен, главный технический сотрудник Oracle и ведущий специалист по спецификациям JAX-RS 2.1, объясняет:
Этот механизм использует долговременные соединения и широковещательную передачу, что обеспечивает более высокую производительность по сравнению с опросом и ресурсоемкими, короткоживущими соединениями.
Он отметил следующие моменты:
JAX-RS 2.1 полностью обратно совместим с предыдущими выпусками.
Новые функции очень хорошо интегрируются с существующими концепциями JAX-RS. Например, простое введение вызова метода в вызов клиента может переключить обработку с синхронной на реактивную.
SSE полагается на потоковые соединения на основе HTTP, поэтому он является естественным расширением существующих API.
Спецификации для выпуска также включают аннотации для POJOs, гибкий API с высокоуровневой поддержкой общих шаблонов использования HTTP и приложений, включая WebDAV и протокол публикации Atom, а также то, что API поддерживает различные типы содержимого тела сущности HTTP, контейнеры сервлетов и поставщиков JAX-WS. API будет поддерживать функции и компоненты Java EE в классе веб-ресурсов.
Поскольку API широко использует аннотации и лямбда-выражения, он поддерживает приложения, разработанные в Java SE 8 или более поздней версии.