JBoss против Tomcat снова

Это будет старый вопрос (который это:)), какой сервер лучше между Tomcat и JBoss, но я еще не нашел достаточно хорошего ответа, чтобы решить мою проблему.

Я знаю, что Tomcat - это только сервлет-движок, и JBoss предлагает множество других функций из коробки, но то, что я не понимаю, - это то, почему Tomcat лучше использовать в некоторых ситуациях, чем jboss. Я где-то читал, что JBoss имеет подключаемую архитектуру и, если необходимо, вы можете отключить функции от JBoss, чтобы сделать его по существу контейнером сервлетов tomcat. Если это так, то не лучше ли это сделать, а не использовать Tomcat, чтобы оставить область для подключения.

Другим объяснением, которое я нахожу в пользу Tomcat, является то, что он легкий, это означает, что требуется меньше памяти, или это также позволяет быстрее реагировать. Опять же, мне нужно знать, что jboss не будет загружать компоненты в соответствии с требованием, то есть если я использую только сервлеты, тогда jboss не пропустит остальные функции и автоматически станет легким.

По сути, мое приложение не обладает функциями Java EE, но "легкие" аргументы в пользу Tomcat не кажутся достаточно убедительными из-за вышеупомянутых причин.

Пожалуйста, помогите.

Edit: Мы наконец решили использовать tomcat тогда, и мы использовали его более 6 месяцев с большой простотой использования. Infact мы нашли практическое применение, где мы могли бы очень легко запускать несколько экземпляров tomcat на одной и той же серверной машине для разных разработчиков, то же самое было бы очень сложно с jboss.

Я нашел, что tomcat был без проблем для нашей работы и поэтому может быть правильным выбором, если вы не используете большую часть возможностей Java EE. PS: Обратите внимание, что мы все еще используем Spring и Hibernate с Tomcat

Ответ 1

Сначала факты, ни лучше. Как уже упоминалось, Tomcat предоставляет контейнер сервлета, который поддерживает спецификацию Servlet (Tomcat 7 поддерживает Servlet 3.0). JBoss AS, "полный" сервер приложений поддерживает Java EE 6 (включая Servlet 3.0) в своей текущей версии.

Tomcat довольно легкий, и если вам нужны определенные функции Java EE за пределами API Servlet, вы можете легко улучшить Tomcat, предоставив необходимые библиотеки как часть вашего приложения. Например, если вам нужны функции JPA, вы можете включить Hibernate или OpenEJB, а JPA работает почти из коробки.

Как решить, использовать ли Tomcat или полный сервер приложений Java EE:

При запуске проекта вы должны иметь представление о том, что он требует. Если вы находитесь в большой корпоративной среде, JBoss (или любой другой сервер Java EE) может быть правильным выбором, поскольку он обеспечивает встроенную поддержку, например:

  • Обмен сообщениями JMS для асинхронной интеграции
  • Механизм веб-служб (JAX-WS и/или JAX-RS)
  • Возможности управления, такие как JMX и скриптовый интерфейс администрирования
  • Расширенная безопасность, например. интеграция с сторонними каталогами
  • EAR файл вместо поддержки только "WAR"
  • все другие "отличные" возможности Java EE, которые я не могу запомнить: -)

По-моему, Tomcat очень хорош, если речь идет о веб-ориентированных приложениях, ориентированных на пользователей. Если интеграция с базой данных вступает в игру, сервер приложений Java EE должен (по крайней мере) считаться. И последнее, но не менее важное: миграция WAR, разработанная для Tomcat в JBoss, должна быть 1-дневным упражнением.

Во-вторых, вы также должны учитывать использование внутри вашей среды. Если ваша организация уже работает, скажем, 1000 экземпляров JBoss, вы всегда можете пойти с этим независимо от ваших конкретных требований (рассмотрите такие аспекты, как стоимость операций или взлома). Конечно, это относится наоборот.

мой 2 цента

Ответ 2

Взгляните на TOMEE

В нем есть все функции, необходимые для создания полного приложения Java EE.

Ответ 3

Я бы, конечно, посмотрел на TomEE, поскольку идея заключается в том, чтобы Tomcat не выполнял интеграцию JavaEE 6 по умолчанию. Это своего рода очень хороший компромисс

Ответ 4

Строго говоря; Без каких-либо возможностей Java EE ваше приложение вряд ли нуждается в сервере приложений; -)

Как и другие, JBoss имеет (более или менее) полный Java EE стек, а Tomcat - только webcontainer. JBoss может быть сконфигурирован так, чтобы он служил только как webcontainer, тогда он просто был бы тонкой оболочкой вокруг включенного webcontainer tomcat. Таким образом, вы могли бы иметь почти легкий JBoss, который на самом деле был бы просто тонкой "оберткой" вокруг Tomcat. Это было бы почти так же легко.

Если вам не понадобятся какие-либо дополнения, которые может предложить JBoss, пойдите для того, с кем вам больше всего нравится. Что проще всего настроить и поддерживать для вас?

Ответ 5

Я также прочитал, что для некоторых серверов одному, например, нужно только аннотировать контексты персистентности, но на некоторых серверах инъекция должна выполняться вручную.