Какие технологии поддерживает Tomcat? - PullRequest
8 голосов
/ 18 мая 2010

Я много читал о сервере приложений GlassFish, который поддерживает всю спецификацию Java EE 6. Но что поддерживает Tomcat?

Я знаю, что Tomcat - это контейнер JSP / Servlet, но я вижу в Интернете статьи о "JSF и Tomcat", "Hibernate и Tomcat" и многих других.

Может ли Tomcat играть с этими технологиями: EJB, JSF, JPA, Hibernate, Spring и т. Д.?

Ответы [ 5 ]

16 голосов
/ 18 мая 2010

Tomcat, являясь базовым контейнером сервлетов, действительно предоставляет только API JSP , Сервлет , EL и WS . Однако вы можете просто предоставить JSF , JSTL , CDI , JPA , Hibernate , Spring и т. Д. Вместе с веб-приложением в виде файлов JAR в папке /WEB-INF/lib и, при необходимости, некоторых файлов конфигурации.

EJB - это всего лишь отдельная история, поскольку вы не можете просто добавить «несколько JAR-файлов», чтобы заставить это работать, но на самом деле да, вы можете поместить контейнер EJB поверх Tomcat, если вы изменить ядро ​​сервера. Это также в основном то, что TomEE сделал. С тем же успехом вы можете подумать об этом, если намерены перейти на Java EE.

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

6 голосов
/ 19 мая 2010

Я много читал о сервере приложений GlassFish, который поддерживает всю спецификацию Java EE 6. Но что поддерживает Tomcat?

Tomcat (который больше не является RI спецификации Servlet со времен Java EE 5) не поддерживает любых API Java EE 6 из коробки. В последней версии Tomcat 6 поставляется с:

  • Сервлет 2.5
  • JSP 2.1 / EL 2.1

В то время как «веб» часть GlassFish реализует:

  • Java Servlet 3.0
  • JavaServer Faces 2.0
  • JavaServer Pages 2.2 / Язык выражений 2.2
  • Стандартная библиотека тегов для страниц JavaServer (JSTL) 1.2

Может ли Tomcat играть с этими технологиями: EJB, JSF, JPA, Hibernate, Spring и т. Д.?

Вы можете использовать некоторые из них, упаковав их в свое приложение ( эта статья содержит хорошее резюме):

  • EJB 3.1: нет, на момент написания этой статьи не было отдельного контейнера EJB 3.1 (и если вы планируете использовать EJB, используйте настоящий сервер Java EE, Tomcat с автономным контейнером EJB не является эквивалентом, особенно из Точка зрения менеджера транзакций).
  • JSF 2.0 и EL 2.2: да, возможно с некоторой болью
  • CDI 1.0: да, возможно
  • Проверка бина 1.0: да, возможно с JSF 2.0 и JPA
  • JPA 2.0: да, возможно, но вам придется самостоятельно приобрести EntityManager и самостоятельно управлять транзакцией (или использовать сторонний контейнер, такой как Spring).

Но позвольте мне настаивать: что бы вы ни добавили в Tomcat, вы не получите эквивалент контейнера Java EE 6, даже если мы просто сравним его с реализацией веб-профиля (например, GlassFish v3 Web Profile ): нет EJB 3.1 Lite, нет JTA 1.1, нет дескрипторных приложений и т. Д.

Если у вас есть выбор, я бы предложил использовать GlassFish v3 Web Profile и охватить Java EE 6.

2 голосов
/ 18 мая 2010

Tomcat не является контейнером EJB, поэтому вы должны использовать для этого полноценный сервер JavaEE 6 (например, Glassfish, Websphere, Weblogic и т. Д.).

Tomcat может использовать Spring / Hibernate, поскольку для этого требуются только соответствующие jar-файлы и определения настроек / контекста. То же относится и к JSF.

JPA является абстрактной спецификацией, а Hibernate (наряду с другими) является реализацией этой спецификации, поэтому ответ «да, она может быть реализована на Tomcat».

1 голос
/ 15 декабря 2017

Мне показалась полезной таблица на странице кота.Страница: http://tomcat.apache.org/whichversion.html

1 голос
/ 18 мая 2010

Tomcat поддерживает в зависимости от его версии:

JSTL 1.0 : Servlet 2.3 : JSP 1,2 (tomcat 4)
JSTL 1.1 : Servlet 2.4 : JSP 2.0 (tomcat 5)
JSTL 1.2 : Servlet 2.5 : JSP 2.1 (tomcat 6)

То, что tomcat не поддерживает EJB по умолчанию, уже получено. EasyBeans охватывает эту проблему.

Для включения JSF 1.2 в tomcat6 существует учебник

EDIT: К сожалению, нет единой матрицы зависимостей (/ совместимости). JPA - это API, который реализуется, например, Hibernate. Не должно быть трудно узнать, какие версии соответствуют. И да, они могут быть использованы с Tomcat (помимо) Spring.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...