Сценарии Java EE, которые не могут быть обработаны Tomcat - PullRequest
12 голосов
/ 14 июня 2011

Tomcat реализует только веб-контейнер архитектуры Java Enterprise Edition. В отличие, например, GlassFish реализует полный стек Java EE . Это было обсуждено много на стеке потока.

Однако для такого начинающего Java EE, как я, трудно представить, что нельзя сделать с Tomcat. Не могли бы вы привести несколько коротких примеров?

Ответы [ 3 ]

9 голосов
/ 14 июня 2011

Из документации Apache Tomcat :

Является ли Tomcat сервером EJB?Могу ли я использовать EJB с tomcat?

Tomcat не является сервером EJB.Tomcat не является полноценным сервером J2EE.Tomcat - это контейнер для сервлетов.Tomcat поддерживает те части спецификации J2EE, которые требуются для сервлетов, такие как подмножество функций JNDI.Кроме того, вы можете подключиться к удаленным серверам J2EE или запустить tomcat, встроенный в полноценный сервер J2EE.

Некоторые из различий, которые это подразумевает, заключаются в том, что ...

  • Tomcat можетобрабатывают только WAR, а не EAR
  • Tomcat не поддерживает какие-либо типы EJB (например, Session Beans, MDB, таймеры и т. д.)
  • Tomcat не поддерживает JPA
  • Tomcatимеет ограниченную функциональность JNDI (не уверен в деталях здесь)

Tomcat можно использовать внутри J2EE-контейнера для использования в качестве веб-контейнера.

Tomcat намного легче в отношенииресурсы и отпечатки файловой системы.

Если вам нужна функциональность J2EE, я бы предложил прикусить пулю и использовать Glassfish, несмотря на сложность и требования к ресурсам (по сравнению с tomcat, Glassfish довольно прост в использовании по сравнению с другимикак Weblogic, так и JBoss).Если нет, придерживайтесь tomcat, он сделает все просто и быстро для вас.В любом случае, нетрудно поменять упаковку вашего проекта позже и поменять контейнеры.

6 голосов
/ 15 июня 2011

Существует большое количество технологий / возможностей, которые являются частью Java EE. Некоторые из них доступны как часть загрузки Tomcat, другие могут быть добавлены в среду на основе Tomcat, а некоторые не могут быть добавлены в среду Tomcat.

Развернуть банку EJB на Tomcat: Нет.

Вызов методов Remote для EJB, работающего в контейнере EJB: Да.

Развернуть RAR на Tomcat: Нет.

Развернуть EAR на Tomcat: Нет.

Развертывание jar приложения-клиента на Tomcat: Нет.

Соберите способ размещения приложения Java Web Startable, которое вызывает методы Remote для EJB, работающего в контейнере EJB: Да

Использование JSF в качестве основы для вашего приложения: Да, но вам нужно упаковать реализацию в ваше приложение или установить ее на свой сервер.

Создайте программу, которая использует JSR-88 для управления развертыванием военных файлов на Tomcat: нет ... не то чтобы это была огромная потеря.

Использование MEJB-компонентов JSR-77 для управления сервером Tomcat: нет ... еще одна небольшая потеря.

Создание веб-приложений, предоставляющих веб-сервисы SOAP: Да ... но вам нужно будет получить инструменты и библиотеки как часть отдельной загрузки и самостоятельно интегрировать их с рабочим процессом, приложением и средой выполнения сервера.

Создание веб-приложений, использующих JPA: Да ... но вам понадобятся инструменты и библиотеки в рамках отдельной загрузки и их интеграция с рабочим процессом, приложением и средой выполнения сервера самостоятельно.

Создание веб-приложений, использующих CDI: Да ... но вам понадобятся инструменты и библиотеки в рамках отдельной загрузки и их интеграция с рабочим процессом, приложениями и средой выполнения сервера самостоятельно.

0 голосов
/ 14 июня 2011

EJB - Сессионные компоненты без сохранения состояния, Сеансовые компоненты с сохранением состояния Управляемые сообщениями компоненты EJB Таймеры JPA (EJB3.0)

Это очень простой список. есть много других функций, которых нет у Tomcat.

...