2011-01-12 3 views
138

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

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

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

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

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

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

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

+1

Uhh не интегрируется JBoss с Tomcat? – Navi

+4

@Navi: Не совсем. Он содержит разветвленную версию кодовой базы Tomcat, но она немного расходится. – skaffman

+0

@ skaffman Хорошо, тогда я думаю, что нам нужно сделать, это выяснить, какие расхождения ... – Navi

ответ

132

В первую очередь, нет фактов лучше. Как уже упоминалось, 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) может быть правильным выбором, поскольку она обеспечивает встроенную поддержку, например:

  1. JMS сообщениями для асинхронной интеграции
  2. Web Services двигателя (JAX-WS и/или JAX-RS)
  3. Возможности управления, такие как JMX и сценарий администрирования
  4. Усовершенствованная безопасность, например вне коробки интеграции с 3-каталогами сторонних
  5. EAR-файл вместо «только» поддержка WAR файл
  6. всех других «больших» функций Java EE я не помню :-)

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

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

мои 2 цента

6

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

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

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

+1

Насколько сложно использовать веб-службы и jmx с tomcat, можете ли вы предоставить некоторые хорошие ссылки/ссылки – Ashish

2

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

12

Посмотрите на TOMEE

Он имеет все функции, необходимые для полной сборки приложения Java EE.

7

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

Смежные вопросы