Сценарии Java EE, которые не могут быть обработаны Tomcat

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

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


person Matthias    schedule 14.06.2011    source источник


Ответы (3)


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

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

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

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

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

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

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

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

person Jesse Webb    schedule 14.06.2011
comment
Я пытаюсь понять, почему tomcat не является контейнером EE, но я немного смущен. @Jesse Webb В своем ответе вы говорите, что tomcat не поддерживает JPA. Означает ли это, что JPA вообще нельзя использовать с tomcat? потому что я почти уверен, что в одном из моих веб-приложений, развернутых в tomcat 6, я успешно реализовал и использовал JPA2.0. Спасибо - person NikosDim; 28.10.2014
comment
@NikosDim Tomcat не имеет встроенной поддержки JPA. Этот пример использования EclipseLink для JPA в Tomcat прекрасно резюмирует: Tomcat 6 - это не является сервером, совместимым с Java EE 5, по своей конструкции, поскольку он является контейнером сервлетов, однако контейнер сервлетов может запускать приложения EJB 3.0 / JPA в управляемом приложением Java SE (автономном) режиме. По сути, вы можете заставить его работать, но это включает в себя настраиваемое развертывание, при котором вы помещаете библиотеки Java EE на свой сервер Tomcat. - person Jesse Webb; 28.10.2014

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

Разверните EJB jar на Tomcat: Нет.

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

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

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

Разверните jar-файл Application Client на Tomcat: Нет.

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

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

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

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

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

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

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

person vkraemer    schedule 14.06.2011

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

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

person Basanth Roy    schedule 14.06.2011