Веб-профиль Java EE vs Java EE Full Platform

В чем разница между сертифицированным сервером Java EE Web Profile (например, JOnAS) и сервером сертифицированной платформы Java EE Full Platform (например, JBoss AS)?

Вот хороший образ, который объясняет это. Веб-профиль является подмножеством Java EE, и его целью является позволить разработчикам создавать более легкие приложения, которые можно использовать в простом контейнере сервлетов (например, Tomcat или Jetty).

введите описание изображения здесь

Будущее

В конце 2017 года Oracle отдала ответственность за Java EE в Eclipse Foundation . Будущие версии после Java EE 8 будут известны как Eclipse Enterprise для Java (EE4J) . Или проект EE4J . Или, может быть, EE.next . Или Джакарта Е.Е. В последние месяцы брендинг менялся.

В Java SE 11 некоторые модули будут удалены. Части, связанные с Java EE, переезжают в новый дом в проекте Jakarta EE. Другие, такие как CORBA, были предложены для принятия любой заинтересованной организацией. См. JEP 320 .

Java EE 8

Java EE 8 был выпущен 2017. См. Историю версий .

Подробную информацию см. В JSR 366: Спецификация Java Platform, Enterprise Edition 8 (Java EE 8) .

Java EE – это надмножество Java Standard Edition (Java SE) . Любая реализация Java EE 8 также является реализацией Java SE 8 или более поздней.

См. Список технологий Java EE 8, опубликованных Oracle, со ссылками на JSR и спецификациями.

Все профили

Для всех профилей Java EE требуются следующие технологии:

• Java SE версии 8 (или более поздней)

• Аннотации ресурса и компонентов, определенные в спецификации Common Annotations (Resource, Resources, PostConstruct, PreDestroy)

• JNDI «java:» контекст именования

• API транзакций Java (JTA)

Веб-профиль

Веб-профиль является определенным подмножеством полной платформы Java EE, ориентируясь на обычно используемые элементы. Реализовано такими продуктами, как Apache TomEE или почти с Eclipse Jetty plus надстройками .

• Элементы базового уровня, необходимые для всех профилей Java EE (перечисленные выше: Java SE 8, annotations жизненного цикла, JNDI java: context и JTA)

• Servlet 4.0 ( JSR 369 )

• Страницы JavaServer (JSP) 2.3

• Язык выражений (EL) 3.0 ( JSR 341 )

• Отладка поддержки других языков (JSR-45) 1.0

• Библиотека стандартных тегов для JavaServer Pages (JSTL) 1.2

• JavaServer Faces (JSF) 2.3 ( JSR 372 )

• Java API для веб-служб RESTful (JAX-RS) 2.1

• API Java для WebSocket (WebSocket) 1.1 ( JSR 356 )

• Java API для обработки JSON (JSON-P) 1.1 ( JSR 374 )

• Java API для JSON Binding (JSON-B) 1.0 ( JSR 367 )

• Общие annotations для платформы Java (JSR-250) 1.3 • Enterprise JavaBeans (EJB) 3.2 Lite

• API транзакций Java (JTA) 1.2

• Java Persistence API (JPA) 2.2

• Проверка валика 2.0 ( JSR 380 )

• Управляемые бобы 1.0

• Перехватчики 1.2

• Контексты и инъекции зависимостей для платформы Java EE 2.0

• Инъекция зависимостей для Java 1.0

• Java EE Security API 1.0

• Интерфейс поставщика аутентификации Java для контейнеров (JASPIC) 1.1

Servlet только

В качестве более легкой альтернативы использованию реализации веб-профиля вы можете начать с реализации Java Servlet / JSP, такой как Apache Tomcat или Eclipse Jetty . Хотя этот подход не является официальным, этот подход очень популярен. Иногда это называется веб-контейнером .

• HTTP -сервер HTTP

• Сервлета

• Страницы JavaServer (JSP)

• Язык выражений (EL)

• WebSocket

• JNDI

При использовании этой установки вы можете выборочно добавлять независимые библиотеки для выборочного использования различных технологий Java EE. Например, для моей собственной работы по созданию веб-приложений с использованием Vaadin Framework я использую Java SE, а не EE, с Tomcat и добавляю библиотеку реализации проверки Bean вручную, поскольку это все, что мне нужно, из списка технологий Java EE.

Полный Java EE

Требуются следующие технологии:

• Все элементы в веб-профиле

• EJB 3.2 (за исключением компонентов EJB и ассоциированного EJBQL, которые были сделаны необязательными)

• JMS 2.0

• JavaMail 1.6

• Разъем 1.7

• WebServices 1.4

• Concurrency Utilities 1.0

• Batch1.0

• Java EE Management 1.1

• JACC 1.5

• JSP Debugging 1.0

• Метаданные веб-служб 2.1

Следующие технологии являются необязательными:

• EJB 3.2 и более ранние сущности и ассоциированные EJB QL

• JAX-RPC 1.1

• JAXR 1.0

• Развертывание Java EE 1.2

схема

Вот диаграмма, показывающая вложенные группы требований.

диаграмму вложенных групп различных технологий, требуемых Java SE 8, веб-контейнеры, веб-профиль Java EE 8, Java EE 8 Required и Java EE 8 Дополнительно

См. Выше список для точности; эта диаграмма не была дважды проверена.

Спецификация Java EE 6 (JSR 316) содержит следующие списки:

Полные требования к продукту Java EE

Требуются следующие технологии:

  • EJB 3.1
  • Сервлет 3.0
  • JSP 2.2
  • EL 2.2
  • JMS 1.1
  • JTA 1.1
  • JavaMail 1.4
  • Коннектор 1.6
  • Веб-сервисы 1.3
  • JAX-RPC 1.1
  • JAX-WS 2.2
  • JAX-RS 1.1
  • JAXB 2.2
  • JAXR 1.0
  • Управление Java EE 1.1
  • Развертывание Java EE 1.2
  • JACC 1.4
  • JASPIC 1.0
  • JSP Debugging 1.0
  • JSTL 1.2
  • Метаданные веб-служб 2.1
  • JSF 2.0
  • Общие annotations 1.1
  • Java Persistence 2.0
  • Проверка бобов 1.0
  • Управляемые бобы 1.0
  • Контексты и инъекции зависимостей для Java EE 1.0
  • Инъекция зависимостей для Java 1.0

Факультативных технологий нет.

Определение веб-профиля

Следующие технологии необходимы компонентам веб-профиля:

  • Сервлет 3.0
  • Страницы JavaServer (JSP) 2.2
  • Язык выражений (EL) 2.2
  • Отладка поддержки других языков (JSR-45) 1.0
  • Библиотека стандартных тегов для JavaServer Pages (JSTL) 1.2
  • JavaServer Faces (JSF) 2.0
  • Общие annotations для платформы Java (JSR-250) 1.1
  • Enterprise JavaBeans (EJB) 3.1 Lite
  • API транзакций Java (JTA) 1.1
  • Java Persistence API (JPA) 2.0
  • Проверка бобов 1.0
  • Управляемые бобы 1.0
  • Перехватчики 1.1
  • Контексты и инжекция зависимостей для платформы Java EE 1.0
  • Инъекция зависимостей для Java 1.06

В веб-профиле нет дополнительных компонентов.

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

Давайте будем гением компьютера.