В чем разница между Tomcat, JBoss и Glassfish?

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

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

Ответ 1

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

Ответ 2

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, со всеми преимуществами, которые могут предложить.

Ответ 3

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

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

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

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


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

Нет коммерческой поддержки (только поддержка сообщества)

JBoss - Запуск от RedHat Это полная поддержка стека для JavaEE, и это сертифицированный контейнер Java EE. Это включает Tomcat как веб-контейнер внутри. Это также имеет два аромата Версия сообщества под названием Application Server (AS) - это будет поддержка только сообщества Enterprise Application Server (EAP). Для этого вы можете получить лицензию на основе подписки (она основана на количестве ядер, которые у вас есть на ваших серверах.)

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

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

Ответ 8

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

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