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

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

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

8 ответов


Tomcat - это просто контейнер сервлетов, т. е. он реализует только спецификации сервлетов и JSP. Glassfish и JBoss-это полные серверы Java EE (включая такие вещи, как EJB, JMS,...), при этом Glassfish является эталонной реализацией последнего стека Java EE 6, но JBoss в 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 имеет большее и более глубокое сообщество пользователей и более зрелую кодовую базу. Однако, однако существенно отстает GlassFish в реализации текущих спецификаций Java EE. Кроме того, для тех, кто предпочитает систему администрирования на основе GUI... Консоль администратора GlassFish чрезвычайно гладкая, в то время как большинство администрирования в JBoss выполняется с помощью командной строки и текстового редактора. GlassFish приходит прямо от Sun / Oracle, со всеми преимуществами которые могут предложить. JBoss не находится под контролем Sun / Oracle, со всеми преимуществами, которые могут предложить.


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

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

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

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


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

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

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

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


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


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


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

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


Apache tomcat - это всего лишь единственный контейнер serverlet, который не поддерживает Enterprise Java application(JEE). JBoss и Glassfish поддерживают приложение JEE, но Glassfish намного тяжелее, чем JBoss server:Ссылка Слайд


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

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