Джакарта EE - Jakarta EE

Джакарта EE
Jakarta EE logo schooner color stacked default
Разработчики)Фонд Затмения
Программное обеспечение плеераЯва
Языки программирования)Ява
Приложения)Сервер приложений
Положение делАктивный
ЛицензияОбщественная лицензия Eclipse или же Стандартная общественная лицензия GNU ж /Исключение пути к классам

Джакарта EE, ранее Платформа Java, Enterprise Edition (Java EE) и Платформа Java 2, Enterprise Edition (J2EE) представляет собой набор спецификаций, расширяющих Java SE 8[1] со спецификациями для корпоративных функций, таких как распределенных вычислений и веб-сервисы.[2] Приложения Jakarta EE работают на эталонное время выполнения, это может быть микросервисы или же серверы приложений, которые обрабатывают транзакции, безопасность, масштабируемость, параллелизм и управление развертываемыми компонентами.

Jakarta EE определяется своим Технические характеристики. Спецификация определяет API (интерфейс прикладного программирования) и их взаимодействия. Как и другие Процесс сообщества Java спецификации, поставщики должны соответствовать определенным требованиям, чтобы заявлять о своих продуктах как Соответствует требованиям Jakarta EE.

Примеры контекстов, в которых используются среды выполнения ссылок Jakarta EE: электронная коммерция, бухгалтерский учет, банковские информационные системы.

История

Платформа была известна как Платформа Java 2, Enterprise Edition или же J2EE с версии 1.2, до изменения названия на Платформа Java, Enterprise Edition или же Java EE в версии 1.5.

Java EE поддерживается Oracle под Процесс сообщества Java. 12 сентября 2017 г. Корпорация Oracle объявил, что представит Java EE Фонд Затмения.[3]Проект верхнего уровня Eclipse был назван Eclipse Enterprise for Java (EE4J).[4] Eclipse Foundation была вынуждена изменить название, потому что Oracle владеет торговой маркой для названия «Java» и переименовала платформу Java EE в Jakarta EE.[5][6] Имя не следует путать с прежним Джакарта проект который способствовал развитию ряда текущих и бывших Java-проектов на Фонд программного обеспечения Apache.

  • J2EE 1.2 (12 декабря 1999 г.)
  • J2EE 1.3 (24 сентября 2001 г.)
  • J2EE 1.4 (11 ноября 2003 г.)
  • Java EE 5 (11 мая 2006 г.)
  • Java EE 6 (10 декабря 2009 г.)
  • Java EE 7 (28 мая 2013 г.)[7] но 5 апреля 2013 года согласно спецификации. 12 июня 2013 года было запланировано начало[8]
  • Java EE 8 (31 августа 2017 г.)[9]
  • Jakarta EE 8 (10 сентября 2019 г.)[10] - полностью совместим с Java EE 8
  • Jakarta EE 9 (22 ноября 2020 г.)[11] - изменение пространства имен javax. * на jakarta. *.

Характеристики

Jakarta EE включает несколько спецификаций, которые служат разным целям, например, создание веб-страниц, чтение и запись из базы данных транзакционным способом, управление распределенными очередями.

API-интерфейсы Jakarta EE включают несколько технологий, расширяющих функциональность базового Java SE API, Такие как Jakarta Enterprise Beans, разъемы, сервлеты, Страницы серверов Джакарты и несколько веб-сервис технологии.

Веб-спецификации

  • Сервлет Джакарта: определяет, как управлять HTTP-запросами, синхронным или асинхронным способом. Это низкий уровень, и другие спецификации Jakarta EE полагаются на него;
  • Jakarta WebSocket: спецификация API, определяющая набор API для обслуживания WebSocket соединения;
  • Лица серверов Джакарты: технология построения пользовательских интерфейсов из компонентов;
  • Джакартский язык выражения (EL) - это простой язык, изначально разработанный для удовлетворения особых потребностей разработчиков веб-приложений. Он используется специально в Jakarta Server Faces для привязки компонентов к (поддержки) bean-компонентов и в Contexts and Dependency Injection для именования bean-компонентов, но может использоваться во всей платформе.

Спецификации веб-сервисов

  • Jakarta RESTful Web Services оказывает поддержку в создании веб-сервисов в соответствии с Изобразительное State Transfer (REST) ​​архитектурный образец;
  • Jakarta JSON Processing - это набор спецификаций для управления информацией, закодированной в формате JSON;
  • Jakarta JSON Binding предоставляет спецификации для преобразования информации JSON в классы Java или из них;
  • Привязка Jakarta XML позволяет отображать XML в объекты Java;
  • Jakarta XML Web Services может использоваться для создания веб-служб SOAP.

Спецификации предприятия

  • Jakarta Contexts and Dependency Injection (CDI) - это спецификация для предоставления внедрение зависимости контейнер;
  • Jakarta Enterprise Beans (EJB) определяет набор облегченных API-интерфейсов, которые контейнер объекта (контейнер EJB) будет поддерживать, чтобы предоставить сделки (с помощью JTA ), вызовы удаленных процедур (с помощью RMI или же RMI-IIOP ), контроль параллелизма, внедрение зависимости и контроль доступа для бизнес-объектов. Этот пакет содержит классы и интерфейсы Jakarta Enterprise Beans, которые определяют контракты между корпоративным компонентом и его клиентами, а также между корпоративным компонентом и контейнером ejb.
  • Джакарта Стойкость (JPA) являются спецификациями объектно-реляционного сопоставления между таблицами базы данных отношений и классами Java.
  • Джакарта Сделки (JTA) содержит интерфейсы и аннотации для взаимодействия с поддержкой транзакций, предлагаемой Jakarta EE. Несмотря на то, что этот API абстрагируется от действительно низкоуровневых деталей, интерфейсы также считаются несколько низкоуровневыми, и предполагается, что средний разработчик приложений в Jakarta EE либо полагается на прозрачную обработку транзакций абстракциями EJB более высокого уровня, либо использует аннотации, предоставляемые этим API в сочетании с управляемыми компонентами CDI.
  • Jakarta Messaging (JMS) предоставляет стандартный способ для программ Java создавать, отправлять, получать и читать сообщения корпоративной системы обмена сообщениями.

Прочие характеристики

  • Проверка: этот пакет содержит аннотации и интерфейсы для поддержки декларативной проверки, предлагаемой Проверка bean-компонентов API. Проверка bean-компонентов предоставляет унифицированный способ предоставления ограничений для bean-компонентов (например, классов модели JPA), которые могут применяться на нескольких уровнях. В Jakarta EE JPA учитывает ограничения проверки bean-компонентов на уровне сохраняемости, в то время как JSF делает это на уровне просмотра.
  • Jakarta Batch предоставляет средства для пакетная обработка в приложениях для выполнения длительных фоновых задач, которые могут включать большой объем данных и которые, возможно, необходимо периодически выполнять.
  • Соединители Джакарта это инструмент на основе Java для подключения серверов приложений и информационных систем предприятия (EIS) в рамках интеграции корпоративных приложений (EAI). Это низкоуровневый API, ориентированный на поставщиков, с которыми средний разработчик приложений обычно не контактирует.

Интернет-профиль

В попытке ограничить размер веб-контейнеров, как в физическом, так и в концептуальном плане, был создан веб-профиль, являющийся подмножеством спецификаций Jakarta EE. Веб-профиль Jakarta EE включает в себя следующее:

Технические характеристикиJava EE 6[12]Java EE 7[7]Java EE 8[9]
Jakarta EE 8[13]
Джакарта EE 9[14]
Сервлет Джакарта3.03.14.05.0
Страницы серверов Джакарты (JSP)2.22.32.33.0
Джакартский язык выражения (EL)2.23.03.04.0
Поддержка отладки в Джакарте для других языков (JSR-45)1.01.01.02.0
Стандартная библиотека тегов Джакарты (JSTL)1.21.21.22.0
Лица серверов Джакарты (JSF)2.02.22.33.0
Jakarta RESTful Web Services (JAX-RS)1.12.02.13.0
Джакарта WebSocket (WebSocket)Нет данных1.01.12.0
Обработка Jakarta JSON (JSON-P)Нет данных1.01.12.0
Связывание Jakarta JSONНет данныхНет данных1.12.0
Аннотации Джакарты (JSR 250 )1.11.21.32.0
Jakarta Enterprise Beans (EJB)3.1 Lite3.2 Lite3.2 Lite4.0 Lite
Джакарта Сделки (JTA)1.11.21.22.0
Джакарта Стойкость (JPA)2.02.12.23.0
Джакарта Бин-валидация1.01.12.03.0
Jakarta Managed Beans1.01.01.02.0
Джакарта Перехватчики1.11.21.22.0
Джакарта Внедрение контекстов и зависимостей (CDI)1.01.12.03.0
Инъекция зависимости от Джакарты1.01.01.02.0
Джакарта БезопасностьНет данныхНет данных1.02.0
Джакарта АутентификацияНет данных1.01.12.0

Сертифицированные среды выполнения ссылок

Хотя по определению все реализации Jakarta EE предоставляют один и тот же базовый уровень технологий (а именно, спецификацию Jakarta EE и связанные API), они могут значительно отличаться в отношении дополнительных функций (например, разъемы, кластеризация, Отказоустойчивость, высокая доступность, безопасность и т. д.), установленный размер, объем памяти, время запуска и т. д.


Джакарта EE

Ссылка на время выполненияРазработчикСертифицирован Java EE 9 - ПолнаяСертификация Java EE 9 - ИнтернетЛицензирование
Стеклянная рыбаЗатмениеЕсть 6.0.0-RC2Есть 6.0.0-RC2Бесплатно программное обеспечение

Java EE

Ссылка на время выполненияРазработчикСертифицировано Java EE 8 - ПолнаяСертификация Java EE 8 - ИнтернетСертификация Java EE 7 - ПолнаяСертификация Java EE 7 - ИнтернетСертифицирован Java EE 6 - Полная
Официальная страница Oracle о совместимости с Java EE.
Сертификация Java EE 6 - ИнтернетСертифицировано Java EE 5J2EE 1.4 сертифицированЛицензирование
Стеклянная рыба сервер с открытым исходным кодомOracleДа v5.0[15]Да v5.0[15]Да v4.x[16]Да v4.x[16]Да v3.x и выше[17]Да v3.x Веб-профильДа v2.1.x[17]Бесплатно программное обеспечение
Сервер Oracle GlassFishOracleДа v3[18] на базе сервера приложений GlassFish с открытым исходным кодомда Сервер приложений Sun Java System v9.0да Сервер приложений Sun Java System v8.2Проприетарное программное обеспечение
Oracle WebLogic ServerOracleДа 14.1.1[19]Да 12.2.1[20]Да v12c[21]Да v10.3.5.0Да v9Проприетарное программное обеспечение
WildFlyКрасная шляпаДа v14.x[15]Да v14.x[15]Да v8.1 [22]Да v8.0.0.FinalДа v7.1[23]Да v6.0[24] и v7.0[25]Да v5.1[26][27]Да v4.xБесплатно программное обеспечение
Платформа корпоративных приложений JBossКрасная шляпаДа v7.2 [28]Да v7.0[16]Да v7.0[16]Да v6.0[29]Да v5Проприетарное программное обеспечение
Сервер приложений IBM WebSphereIBMДа v9.x[15]Да v9.x[16]Да v8[30]Да v7даПроприетарное программное обеспечение
IBM WebSphere Application Server LibertyIBMДа v18.0.0.2[31]Да v18.0.0.2[31]Да v8.5.5.6[32][33]Да v8.5.5.6[16]Да v8.5.5[34]Проприетарное программное обеспечение
Открытая свободаIBMДа v18.0.0.2Да v18.0.0.2Бесплатно программное обеспечение
IBM WebSphere Application Server Community EditionIBMДа v3.0Да v2.1Проприетарное программное обеспечение
Apache GeronimoApacheДа v3.0-beta-1[35][36]Да v2.0Да v1.0Бесплатно программное обеспечение
ИИСУСTmaxSoftДа v8Да v7[37][38]Да v6Да v5Проприетарное программное обеспечение
Сервер приложений CosminexusHitachiДа v10.0[15]Да v9[39]Проприетарное программное обеспечение
Сервер межкаскадных приложений Fujitsu[40]FujitsuДа v12.0[15]Да v1 Azure / v10.1[41][42]даПроприетарное программное обеспечение
WebOTXNECда[43]даПроприетарное программное обеспечение
Сервер приложений BESБаоландаДа v9.5[16]
Apache TomEE[44][45]ApacheНет 7 (Java EE 7 нравится, но не сертифицирован[46])даБесплатно программное обеспечение
Смола СерверCauchoДа v4.0[47]даПроприетарное программное обеспечение
SiwpasOW2Да v6.0[48]Бесплатно программное обеспечение
ЙОНАСOW2Да v5.3 RC1[49]дадаБесплатно программное обеспечение
SAP NetWeaverSAPДа v2.x[50]дадаПроприетарное программное обеспечение
Контейнеры Oracle для Java EEOracleдаПроприетарное программное обеспечение
Веб-сервер Oracle iPlanetOracleДа Веб-сервер Sun Java SystemПроприетарное программное обеспечение
Сервер приложений Oracle 10gOracleдаПроприетарное программное обеспечение
Прамати СерверPramati TechnologiesДа v5.0Проприетарное программное обеспечение
Трифорк Т4TriforkдаПроприетарное программное обеспечение
Сервер приложений Sybase Enterprise[51]SybaseдаПроприетарное программное обеспечение

Пример кода

Пример кода, показанный ниже, демонстрирует, как различные технологии в Java EE 7 используются вместе для создания веб-формы для редактирования пользователя.

В Jakarta EE (веб) пользовательский интерфейс можно создать с помощью Сервлет Джакарта, Страницы серверов Джакарты (JSP), или же Лица серверов Джакарты (JSF) с Facelets. В приведенном ниже примере используются JSF и Facelets. Явно не показано, что входные компоненты используют Jakarta EE Bean Validation API для проверки ограничений.

 xmlns ="http://www.w3.org/1999/xhtml"      xmlns: h ="http://xmlns.jcp.org/jsf/html" xmlns: f ="http://xmlns.jcp.org/jsf/core">    <f:metadata>         имя ="ID пользователя" значение ="# {userEdit.user}" конвертер ="# {userConvertor}" />    </f:metadata>    <h:body>         />        <h:form>             столбцы ="2">                 для ="имя" значение ="Имя" />                <ч: inputText id ="имя" значение ="# {userEdit.user.firstName}" label ="Имя" />                 для ="фамилия" значение ="Фамилия" />                <ч: inputText id ="фамилия" значение ="# {userEdit.user.lastName}" label ="Фамилия" />                 действие ="# {userEdit.saveUser}" значение ="Сохранять" />            </h:panelGrid>        </h:form>    </h:body></html>

Пример класса Backing Bean

Для облегчения просмотра Jakarta EE использует концепцию, называемую «Backing Bean». В приведенном ниже примере используется Внедрение контекстов и зависимостей (CDI) и Jakarta Enterprise Beans (EJB).

@Named@ViewScopedобщественный учебный класс UserEdit {    частный Пользователь Пользователь;    @Inject    частный UserDAO userDAO;    общественный Нить saveUser() {        userDAO.спасти(это.Пользователь);        addFlashMessage("Пользователь " + это.Пользователь.getId() + "спасен");        возвращаться "users.xhtml? faces-redirect = true";    }    общественный пустота setUser(Пользователь Пользователь) {        это.Пользователь = Пользователь;    }    общественный Пользователь getUser() {        возвращаться Пользователь;    }}

Пример класса объекта доступа к данным

Чтобы реализовать бизнес-логику, Jakarta Enterprise Beans (EJB) - это специализированная технология в Jakarta EE. За актуальную настойчивость, JDBC или же Джакарта Стойкость (JPA) можно использовать. В приведенном ниже примере используются EJB и JPA. Явно не показано, что JTA используется EJB для управления поведением транзакций.

@Statelessобщественный учебный класс UserDAO {    @PersistenceContext    частный EntityManager entityManager;    общественный пустота спасти(Пользователь Пользователь) {        entityManager.сопротивляться(Пользователь);    }    общественный пустота Обновить(Пользователь Пользователь) {        entityManager.слияние(Пользователь);    }    общественный Список<Пользователь> получить все() {        возвращаться entityManager.createNamedQuery("User.getAll", Пользователь.учебный класс)                            .getResultList();    }}

Пример класса Entity

Для определения классов сущностей / моделей Jakarta EE предоставляет Jakarta Persistence (JPA), а для выражения ограничений для этих сущностей он предоставляет Bean Validation API. В приведенном ниже примере используются обе эти технологии.

@Юридическое лицообщественный учебный класс Пользователь {    @Идентификатор    @GeneratedValue(стратегия = ЛИЧНОСТЬ)    частный Целое число я бы;    @Размер(мин = 2, сообщение="Имя слишком короткое")    частный Нить имя;    @Размер(мин = 2, сообщение="Фамилия слишком короткая")    частный Нить фамилия;    общественный Целое число getId() {        возвращаться я бы;    }    общественный пустота установить идентификатор(Целое число я бы) {        это.я бы = я бы;    }    общественный Нить getFirstName() {        возвращаться имя;    }    общественный пустота setFirstName(Нить имя) {        это.имя = имя;    }    общественный Нить getLastName() {        возвращаться фамилия;    }    общественный пустота setLastName(Нить фамилия) {        это.фамилия = фамилия;    }}

Смотрите также

Рекомендации

  1. ^ «Различия между Java EE и Java SE - ваша первая чашка: введение в платформу Java EE». Docs.oracle.com. 2012-04-01. Получено 2012-07-18.
  2. ^ «Обзор Java EE». Корпорация Oracle. Получено 26 февраля, 2017.
  3. ^ Джон К. Уотерс (12 сентября 2017 г.). «Java EE переходит на Eclipse Foundation». ADTmag. Получено 2017-09-13.
  4. ^ Битон, Уэйн. "EE4J FAQ | Фонд Eclipse". www.eclipse.org.
  5. ^ Чиргвин, Ричард (4 марта 2018 г.). "Java EE переименована в" Jakarta EE "после спора с брендом Big Red". Программного обеспечения. Реестр. Получено 19 марта 2018.
  6. ^ Воан-Николс, Стивен Дж. (5 марта 2018 г.). "Прощай, JEE, привет, Джакарта, ЭЭ". Linux и открытый исходный код. ZDNet. Получено 2020-07-10.
  7. ^ а б «JSR 342: Спецификация платформы Java ™, Enterprise Edition 7 (Java EE 7)». Процесс сообщества Java.
  8. ^ Вильдт, Тори. «Представляем Java EE 7: начало, 12 июня». Архивировано из оригинал на 2013-09-13. Получено 2013-05-28.
  9. ^ а б "Java Platform, Enterprise Edition (Java EE) Specification, v8" (PDF). Oracle.
  10. ^ «Джакарта ЭЭ 8». projects.eclipse.org. Получено 2020-07-11.
  11. ^ «Джакарта ЭЭ 9». eclipse.org. Получено 2020-23-11. Проверить значения даты в: | дата доступа = (помощь)
  12. ^ «JSR 316: Платформа Java ™, Спецификация Enterprise Edition 6 (Java EE 6)». Процесс сообщества Java.
  13. ^ «Необходимые компоненты». WebProfile. Джакарта EE. Получено 2020-07-11.
  14. ^ "Jakarta EE WebProfile". jakarta.ee. Получено 2020-07-15.
  15. ^ а б c d е ж грамм «Совместимость с Java EE». www.oracle.com. Получено 2018-08-05.
  16. ^ а б c d е ж грамм «Совместимость с Java EE».
  17. ^ а б «Сравнение GlassFish Open Source Edition версий 2.x и 3.0.x». Архивировано из оригинал на 2012-12-20.
  18. ^ «Совместимость с Java EE». Java.sun.com. 2010-09-07. Получено 2012-07-18.
  19. ^ "Oracle Weblogic Server 14.1.1". www.oracle.com.
  20. ^ "Oracle Weblogic Server 12.1.1". www.oracle.com.
  21. ^ Лайонс, Уилл; Хамфри, Питер (2011). «Oracle Web Logic Server 12c: разработка современных легких приложений Java EE 6» (PDF). Архивировано из оригинал (PDF) на 2011-12-15. Получено 2011-12-03.
  22. ^ «Совместимость с Java EE». www.oracle.com.
  23. ^ "JBoss AS 7.1.0.Final" Thunder "выпущен - полный профиль Java EE 6 сертифицирован! | Моя Wiki | Сообщество Planet JBoss". Planet.jboss.org. 2012-02-17. Получено 2012-07-18.
  24. ^ «Сервер приложений JBoss - Сообщество JBoss».
  25. ^ «Сервер приложений JBoss - Сообщество JBoss».
  26. ^ «Совместимость с Java EE».
  27. ^ "JBoss AS теперь сертифицирован EE5!". 15 сентября 2008 г. Архивировано с оригинал 20 сентября 2008 г.. Получено 7 августа 2016.
  28. ^ «Доступность Red Hat JBoss Enterprise Application Platform 7.2».
  29. ^ Business Wire (20.06.2012). «Red Hat запускает платформу JBoss Enterprise Application Platform 6, чтобы помочь предприятиям перенести разработку и развертывание приложений в облако». Деловой провод. Получено 2012-07-18.
  30. ^ «Что нового в WebSphere Application Server V8». Ibm.com. Получено 2012-07-18.
  31. ^ а б «IBM WebSphere Application Server Liberty поставляет первый готовый к работе, Java EE 8-совместимый сервер приложений и расширяет поддержку приложений Spring Boot». IBM. Получено 12 июля 2018.
  32. ^ http://oracle.com/technetwork/java/javaee/overview/waslibertyprofile8556-2587134.html
  33. ^ "Java EE 7 приземлился в WAS Liberty - WASdev". 25 июня 2015 г.
  34. ^ «Протестированные конфигурации веб-профиля IBM Java EE 6».
  35. ^ "Apache Geronimo: Указатель". geronimo.apache.org. 25 января 2010 г.
  36. ^ «Apache Geronimo полностью сертифицирован для Java EE 6 - The H Open: новости и возможности». H-online.com. 2011-11-14. Архивировано из оригинал 20 апреля 2012 г.. Получено 2012-07-18.
  37. ^ «Протестированные конфигурации, Java EE 6 - TMAX JEUS 7». Oracle.com. 2010-09-07. Получено 2012-07-18.
  38. ^ «Сервер веб-приложений Java EE6, программное обеспечение WAS». Us.tmaxsoft.com. Архивировано из оригинал на 2012-07-02. Получено 2012-07-18.
  39. ^ «Java EE 6 - протестированные конфигурации, Java EE 6 - сервер приложений Hitachi uCosminexus v9.0». Oracle.com.
  40. ^ «Сервер межкаскадных приложений Fujitsu на базе Windows Azure». Архивировано из оригинал 10 августа 2011 г.
  41. ^ «Протестированные конфигурации, Java EE6 - Fujitsu Interstage». Oracle.com. 2010-09-07. Получено 2012-07-18.
  42. ^ "Fujitsu выпускает межкаскадный сервер приложений V10.1". Fujitsu.
  43. ^ «Сертификация сервера приложений NEC WebOTX V9.x».
  44. ^ "Apache TomEE". Openejb.apache.org. Получено 2012-07-18.
  45. ^ "MarketWatch.com". MarketWatch.com. Получено 2012-07-18.
  46. ^ TomEE, Apache. "Apache TomEE 7.0.1".
  47. ^ "Веб-профиль Java EE 6 сервера приложений Resin" (PDF). caucho.com. 2011.
  48. ^ «Пожалуйста, приветствуйте Siwpas как сертифицированный вариант Java EE!». Oracle.com. Получено 2015-12-07.
  49. ^ «Выпущен JOnAS 5.3.0 RC1». jonas.ow2.org. 2013-01-07. Архивировано из оригинал на 2013-10-15. Получено 2014-02-25.
  50. ^ «Сертифицирован веб-профиль SAP NetWeaver Cloud Java EE 6! (Аквариум)».
  51. ^ «Программные решения SAP - бизнес-приложения и технологии».

внешняя ссылка