В чем разница между сертифицированным сервером Java EE Web Profile (например, JOnAS) и сервером сертифицированной Java EE Full Platform (например, JBoss AS)?
Веб-профиль Java EE vs Java EE Full Platform
Ответ 1
Вот хороший образ, который объясняет это. Веб-профиль является подмножеством Java EE, и он позволяет разработчикам создавать более легкие приложения, которые можно использовать в простом контейнере сервлетов (например, Tomcat или Jetty).
Ответ 2
Будущее
В конце 2017 года Oracle передала ответственность за Java EE Фонду Eclipse. Будущие версии после Java EE 8 будут называться Eclipse Enterprise For Java (EE4J). Или проект EE4J. Или, может быть, EE.next. Или Джакарта Э. Брендинг изменился в последние месяцы.
В рамках перехода от Oracle команда Eclipse переиздаст Java EE 8 как Jakarta EE 8, используя свою новую инфраструктуру для кодирования жилья и создания сборок. Такое же поведение EE, то же внутреннее именование и структура пакета. Таким образом, вопросы, обсуждаемые ниже о веб-профиле Java EE в сравнении с полной платформой Java EE, будут по-прежнему применимы.
Однако следующая версия с новыми функциями (Jakarta EE 9), вероятно, потребует нового именования пакетов и, возможно, именования различных API, составляющих EE. Таким образом, даже при том, что вы, вероятно, сможете ожидать восходящей совместимости в поведении, изменения имен будут означать версию 9 и позже не будет заменой двоичного кода. Не конец света. Это может означать так же мало, как и изменение имен пакетов import
в файлах различных классов. Прочитайте это и это для деталей и ссылок.
Кроме того, команда Eclipse и сообщество EE в Джакарте могут свободно пересматривать или реорганизовывать различные части EE. Поэтому веб-профиль Java EE и полная платформа Java EE, приведенные ниже, могут не относиться непосредственно к Jakarta EE 9 и более поздним версиям.
Еще одно замечание, если вы используете более свежие версии Java SE, лежащие в основе EE... В 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 (Ресурс, Ресурсы, PostConstruct, PreDestroy)
• JNDI "java:" контекст именования
• API транзакций Java (JTA)
Веб-профиль
Веб-профиль - это специфическое подмножество полной платформы Java EE, ориентированное на часто используемые элементы. Реализуется такими продуктами, как Apache TomEE или почти с помощью дополнений Eclipse Jetty plus.
• Элементы базового уровня, необходимые для всех профилей Java EE (перечислены выше: Java SE 8, аннотации жизненного цикла, JNDI
java:
context и JTA)• Сервлет 4.0 (JSR 369)
• JavaServer Pages (JSP) 2.3
• Язык выражений (EL) 3.0 (JSR 341)
• Поддержка отладки для других языков (JSR-45) 1.0
• Стандартная библиотека тегов для страниц JavaServer (JSTL) 1.2
• JavaServer Faces (JSF) 2.3 (JSR 372)
• Java API для веб-сервисов RESTful (JAX-RS) 2.1
• Java API для WebSocket (WebSocket) 1.1 (JSR 356)
• Java API для обработки JSON (JSON-P) 1.1 (JSR 374)
• Java API для привязки JSON (JSON-B) 1.0 (JSR 367)
• Общие аннотации для платформы Java (JSR-250) 1.3 • Enterprise JavaBeans (EJB) 3.2 Lite
• Java Transaction API (JTA) 1.2
• Java Persistence API (JPA) 2.2
• Проверка бобов 2.0 (JSR 380)
• Управляемые бобы 1.0
• перехватчики 1.2
• Контексты и внедрение зависимостей для платформы Java EE 2.0
• Внедрение зависимостей для Java 1.0
• API безопасности Java EE 1.0
• Интерфейс поставщика услуг аутентификации Java для контейнеров (JASPIC) 1.1
Servlet только
В качестве более легкой альтернативы использованию реализации Web Profile вы можете начать с реализации Java Servlet/JSP, такой как Apache Tomcat или Eclipse Jetty. Хотя этот подход не является официальным, он очень популярен. Иногда известный как веб-контейнер.
• Сервлет
• JavaServer Pages (JSP)
• язык выражений (EL)
• JNDI
При использовании этой настройки вы можете выборочно добавлять независимые библиотеки, чтобы избирательно извлекать выгоду из различных технологий Java EE. Например, для моей собственной работы по созданию веб-приложений с использованием Vaadin Framework я использую Java SE, а не EE, с Tomcat и добавляю библиотеку реализации Bean Validation вручную, поскольку это все, что мне нужно из списка технологий Java EE.
Полная Java EE
Требуются следующие технологии:
• Все элементы в веб-профиле
• EJB 3.2 (за исключением объектов EJB-компонентов и связанных EJBQL, которые были сделаны необязательными)
• JMS 2.0
• JavaMail 1.6
• Разъем 1.7
• Веб-сервисы 1.4
• Параллельные утилиты 1.0
• Пакет 1.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 Deployment 1.2
схема
Вот диаграмма, чтобы показать вложенные группы требований.
Список выше этой диаграммы может быть более точным; эта диаграмма не была перепроверена.
Ответ 3
Спецификация 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 Management 1.1
- Java EE Deployment 1.2
- JACC 1.4
- JASPIC 1.0
- JSP Debugging 1.0
- JSTL 1.2
- Метаданные веб-сервисов 2.1
- JSF 2.0
- Общие аннотации 1.1
- Java Persistence 2.0
- Bean Validation 1.0
- Управляемые Бобы 1.0
- Контексты и внедрение зависимостей для Java EE 1.0
- Внедрение зависимостей для Java 1.0
Там нет дополнительных технологий.
Определение веб-профиля
Следующие технологии являются обязательными компонентами веб-профиля:
- Сервлет 3.0
- JavaServer Pages (JSP) 2.2
- Язык выражений (EL) 2.2
- Поддержка отладки для других языков (JSR-45) 1.0
- Стандартная библиотека тегов для страниц JavaServer (JSTL) 1.2
- JavaServer Faces (JSF) 2.0
- Общие аннотации для Java-платформы (JSR-250) 1.1
- Enterprise JavaBeans (EJB) 3.1 Lite
- API транзакций Java (JTA) 1.1
- Java Persistence API (JPA) 2.0
- Bean Validation 1.0
- Управляемые Бобы 1.0
- Перехватчики 1.1
- Контексты и внедрение зависимостей для Java EE Platform 1.0
- Внедрение зависимостей для Java 1.06
В веб-профиле нет дополнительных компонентов.
Для Java EE 7 есть список всех технологий EE, также показывающих, которые включены в веб-профиль. Некоторые технологии, ранее доступные только в полном профиле, теперь включены в веб-профиль, например JAX-RS.