Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Что такое Jakarta EE

Jakarta EE — это набор стандартов для серверных приложений на Java: веб-страниц, REST API, работы с базой данных, транзакций и безопасности. Это не одна библиотека, а платформа: десятки спецификаций, которые договорились работать вместе. Код пишется по стандарту, а запускает его сервер приложений — программа, в которой уже есть реализации всех этих стандартов.

Немного истории

ГодНазваниеЧто произошло
1999J2EE 1.2Sun выпускает «корпоративную» Java: сервлеты, JSP, EJB
2006Java EE 5Аннотации вместо громоздких XML-файлов
2017Java EE 8Последняя версия под управлением Oracle
2019Jakarta EE 8Платформу передали Eclipse Foundation, сменилось название
2020Jakarta EE 9Пакеты javax.* переименованы в jakarta.*
2025Jakarta EE 11Требует Java 17+, поддерживает записи (record) и Java 21

Курс написан для Jakarta EE 11 — текущей основной версии. Если в старой статье встречается import javax.servlet..., это Java EE 8 или раньше: в новом коде пакет называется jakarta.servlet.

Спецификации и реализации

Спецификация — это документ и набор интерфейсов: что должна уметь технология. Реализация — конкретная библиотека, которая этот документ выполняет.

СпецификацияДля чегоПример реализации
ServletОбработка HTTP-запросовTomcat, движок Open Liberty
Jakarta REST (JAX-RS)REST APIRESTEasy, Jersey
CDIВнедрение зависимостейWeld
Jakarta Persistence (JPA)Работа с базой через объектыEclipseLink, Hibernate
Jakarta DataРепозитории: запросы без ручного кодаOpen Liberty, Hibernate
Bean ValidationПроверка данныхHibernate Validator
Jakarta FacesСерверные HTML-страницыMyFaces, Mojarra

Ваше приложение зависит только от API — интерфейсов и аннотаций. Реализации предоставляет сервер, поэтому готовый WAR-файл весит десятки килобайт.

Серверы приложений

СерверКто развивает
Open LibertyIBM
WildFlyRed Hat
PayaraPayara Services
GlassFishEclipse Foundation

В курсе используется Open Liberty 26.0.0.9: он запускается из Maven одной командой и сам скачивает всё нужное. Приложение собирается под Java 21, а запускалось на Java 25. Тот же код без изменений развернётся и на других серверах — в этом смысл стандарта.

Где Jakarta EE сегодня

Платформу используют банки, страховые компании, государственные системы — везде, где приложения живут десятилетиями. Многие современные фреймворки построены на её спецификациях: Quarkus и Helidon используют CDI и Jakarta REST, Spring Boot — Servlet, JPA и Bean Validation. Поэтому знание Jakarta EE пригодится, даже если сервер приложений вы не выберете.

Что будем делать

Через весь курс пройдёт один пример — блог: записи, комментарии, пользователи. Сначала сделаем страницы на сервлетах, затем REST API, подключим CDI, базу данных, транзакции, репозитории Jakarta Data, безопасность, а в конце соберём приложение для выпуска.

Частая ошибка

Смешивать старые и новые пакеты. Библиотека для Java EE 8 с javax.servlet или javax.persistence не заработает на сервере Jakarta EE 11: классы просто не найдутся, и сервер сообщит что-то вроде java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet. Проверяйте, что зависимости поддерживают пространство имён jakarta.*.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.