В чем разница между Tomcat, JBoss и Glassfish? - PullRequest
433 голосов
/ 29 сентября 2010

Я начинаю изучать Enterprise Java, и в книге, в которой я следую, упоминается, что она будет использовать JBoss.Netbeans поставляется с Glassfish.Я использовал Tomcat в прошлом.

В чем различия между этими тремя программами?

Ответы [ 8 ]

504 голосов
/ 29 сентября 2010

Tomcat - это просто контейнер сервлетов, т. Е. Он реализует только сервлеты и спецификацию JSP. Glassfish и JBoss являются полноценными серверами Java EE (включая такие, как EJB, JMS, ...), причем Glassfish является эталонной реализацией последнего стека Java EE 6, но JBoss в 2010 году еще не полностью его поддерживал.

348 голосов
/ 29 сентября 2010

Tomcat - это просто сервер HTTP и контейнер сервлетов Java. JBoss и GlassFish являются полнофункциональными серверами приложений Java EE, включая контейнер EJB и все другие функции этого стека. С другой стороны, Tomcat имеет меньший объем памяти (~ 60-70 МБ), тогда как эти серверы Java EE весят сотни мегабайт. Tomcat очень популярен для простых веб-приложений или приложений, использующих такие среды, как Spring, для которых не требуется полноценный сервер Java EE. Администрирование сервера Tomcat, возможно, проще, поскольку меньше движущихся частей.

Однако для приложений, которым требуется полный стек Java EE (или, по крайней мере, больше компонентов, которые можно легко прикрепить к Tomcat) ... JBoss и GlassFish - два самых популярных предложения с открытым исходным кодом (третий Apache Geronimo, на котором построена бесплатная версия IBM WebSphere). JBoss имеет более широкое и глубокое сообщество пользователей и более зрелую базу кода. Тем не менее, JBoss значительно отстает от GlassFish в реализации текущих спецификаций Java EE. Кроме того, для тех, кто предпочитает систему администрирования на основе графического интерфейса ... Консоль администратора GlassFish чрезвычайно удобна, в то время как большая часть администрирования в JBoss выполняется с помощью командной строки и текстового редактора. GlassFish поставляется непосредственно от Sun / Oracle, со всеми преимуществами, которые могут предложить. JBoss НЕ находится под контролем Sun / Oracle, со всеми преимуществами, которые может предложить.

74 голосов
/ 13 апреля 2016

Вы должны использовать GlassFish для корпоративных приложений Java EE .Вот некоторые соображения:

A веб-сервер означает: Обработка HTTP-запросов (обычно из браузеров).

A Контейнер сервлетов (например, Tomcat ) означает: Может обрабатывать сервлеты и JSP.

Сервер приложений (например, GlassFish ) означает: * Он может управлять приложениями Java EE (обычно сервлетами / JSP и EJB).


Tomcat - управляется сообществом Apache -Открытый исходный код и имеет два вида:

  1. Tomcat - веб-профиль - легкий, который является только контейнером сервлета и не поддерживает функции Java EE, такие как EJB, JMS и т. Д.
  2. Tomcat EE - это сертифицированный контейнер Java EE, поддерживающий все технологии Java EE.

Коммерческая поддержка недоступна (только поддержка сообщества)

JBoss - Запуск от RedHat Это полная поддержка стека для JavaEE и сертифицированная JavaЕЕ контейнерЭто включает в себя Tomcat в качестве веб-контейнера внутри.Это также имеет два варианта:

  1. Версия сообщества, называемая сервером приложений (AS) - здесь будет поддерживаться только поддержка сообщества.
  2. Enterprise Application Server (EAP) - Для этого вы можете иметь лицензию на основе подписки (в зависимости от количества ядер, имеющихся на ваших серверах.)

Glassfish - ВыполнитьOracle Это также сертифицированный Java EE-контейнер с полным стеком.Это имеет свой собственный веб-контейнер (не Tomcat).Это происходит от самого Oracle, поэтому все новые спецификации будут сначала протестированы и реализованы с помощью Glassfish.Таким образом, всегда будет поддерживать последние спецификации.Мне не известны его модели поддержки.

13 голосов
/ 29 сентября 2010

jboss и glassfish включают в себя контейнер сервлетов (например, tomcat), однако два сервера приложений (jboss и glassfish) также предоставляют контейнер bean-компонентов (и некоторые другие вещи, как я представляю)

6 голосов
/ 02 августа 2017

Кажется, немного разочаровывает использование Tomcat, когда вы читаете эти ответы.Однако больше всего не упоминается то, что вы можете использовать идентичные или почти идентичные варианты использования с tomcat, но для этого необходимо добавить необходимые библиотеки (через Maven или любую другую систему, которую вы используете).

Я работалtomcat с JPA, EJB с очень небольшими усилиями по настройке.

6 голосов
/ 23 марта 2016

JBoss и Glassfish в основном являются полноценными серверами приложений Java EE, тогда как Tomcat - это всего лишь контейнер сервлетов. Основное различие между JBoss, Glassfish, но также и WebSphere, WebLogic и т. Д. По отношению к Tomcat, а также Jetty, заключалось в функциональности, которую предлагает полный сервер приложений. Если у вас есть сервер приложений Java EE с полным стеком, вы можете воспользоваться всеми преимуществами реализации поставщика по вашему выбору, а также EJB, JTA, CDI (JAVA EE 6+), JPA, JSF, JSP / Servlet и так далее. С Tomcat, с другой стороны, вы можете воспользоваться только JSP / Servlet. Однако на сегодняшний день с такими продвинутыми платформами, как Spring и Guice, многие из основных преимуществ использования сервера приложений с полным стеком могут быть смягчены, и, предполагая, что один из этих фреймворков будет реализован вручную в Spring Ecosystem, вы сможете воспользоваться многими проект, который по моему опыту работы позволил мне отказаться от использования сервера приложений с полным стеком в пользу более легкого сервера приложений, такого как tomcat.

3 голосов
/ 22 июля 2015

JBoss и Tomcat являются серверами приложений Java-сервлетов, но JBoss - намного больше.Существенная разница между ними заключается в том, что JBoss предоставляет полный стек Java Enterprise Edition (Java EE), включая Enterprise JavaBeans и многие другие технологии, которые полезны для разработчиков, работающих над корпоративными приложениями Java.

Tomcat гораздо более ограничен.Можно подумать, что JBoss - это стек Java EE, который включает в себя контейнер сервлета и веб-сервер, тогда как Tomcat, по большей части, представляет собой контейнер сервлета и веб-сервер.

2 голосов
/ 07 июня 2017

Apache tomcat - это единственный контейнер с сервлетами, который он не поддерживает для приложения Enterprise Java (JEE). JBoss и Glassfish поддерживают приложение JEE, но Glassfish намного тяжелее сервера JBOSS: Reference Slide

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