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


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

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

8 400

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. Кроме того, для тех, кто предпочитает систему администрирования на основе графического интерфейса... Консоль администратора GlassFish чрезвычайно гладкая, тогда как большинство администрирования в JBoss выполняется с помощью командной строки и текстового редактора. GlassFish поставляется прямо из Sun / Oracle, со всеми преимуществами, которые могут предложить. JBoss не находится под контролем Sun/Oracle, со всеми преимуществами, которые могут предложить.

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

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

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

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


Tomcat - находится в ведении сообщества апаш - с открытым исходным кодом и имеет две разновидности 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) также предоставляют контейнер bean (и несколько других вещей, которые я себе представляю)

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 не поддержка корпоративных приложений на Java(Джи). JBoss и Glassfish поддерживают приложение JEE, но Glassfish намного тяжелее, чем сервер JBOSS:Ссылка Слайд

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

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