Какие технологии Tomcat поддерживает?

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

Я знаю, что Tomcat является контейнером JSP/Servlet, но я вижу статьи в сети о "JSF и Tomcat", "В спящем режиме и Tomcat" и многое другое.

Может кот играть с этими технологиями: EJB, JSF, JPA, В спящем режиме, Spring, и т.д.?

9
задан BalusC 18 May 2010 в 12:30
поделиться

4 ответа

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

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

См. Также:

17
ответ дан 4 December 2019 в 07:47
поделиться

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

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

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

2
ответ дан 4 December 2019 в 07:47
поделиться

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, существует учебное пособие

РЕДАКТИРОВАТЬ: К сожалению, не существует единой матрицы зависимостей (/ совместимости). JPA - это API, который реализует, например, Спящий режим. Нетрудно выяснить, какие версии совпадают. И да, их можно использовать с Tomcat (помимо) Spring.

1
ответ дан 4 December 2019 в 07:47
поделиться

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

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

  • Servlet 2.5
  • JSP 2.1/EL 2.1

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

  • Java Servlet 3.0
  • JavaServer Faces 2.0
  • JavaServer Pages 2.2/Expression Language 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 и использовать Java EE 6.

6
ответ дан 4 December 2019 в 07:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: