web-dev-qa-db-fra.com

Quelle est la différence entre Tomcat, JBoss et Glassfish?

Je commence à regarder dans Enterprise Java et le livre que je suis en train de lire mentionne qu'il utilisera JBoss. Netbeans est livré avec Glassfish. J'ai utilisé Tomcat dans le passé.

Quelles sont les différences entre ces trois programmes?

436
samoz

Tomcat est simplement un conteneur de servlets, c’est-à-dire qu’il n’implémente que les servlets et la spécification JSP. Glassfish et JBoss sont pleins Java serveurs EE (y compris des éléments tels que EJB, JMS, ...), Glassfish étant l'implémentation de référence de la dernière Java EE 6 pile, mais JBoss en L'année 2010 n'était pas encore totalement supportée.

506
Petar Minchev

Tomcat est simplement un serveur HTTP et un conteneur de servlets Java. JBoss et GlassFish sont des serveurs d'applications Java EE complets, comprenant un conteneur EJB et toutes les autres fonctionnalités de cette pile. D'autre part, Tomcat a une empreinte mémoire plus faible (~ 60-70 Mo), alors que ses Java EE serveurs pèsent plusieurs centaines de Mo. Tomcat est très populaire pour les applications Web simples ou les applications utilisant des infrastructures telles que Spring qui ne nécessitent pas un serveur complet Java EE. L'administration d'un serveur Tomcat est sans doute plus facile, car il y a moins de pièces mobiles.

Toutefois, pour les applications nécessitant une pile Java EE complète (ou au moins plusieurs éléments pouvant facilement être intégrés à Tomcat) ... JBoss et GlassFish sont deux des offres open source les plus populaires ( le troisième est Apache Geronimo, sur lequel est construite la version gratuite d’IBM WebSphere). JBoss a une communauté d'utilisateurs plus large et plus profonde et une base de code plus mature. Cependant, JBoss accuse un retard important par rapport à GlassFish dans la mise en œuvre des spécifications Java EE actuelles. En outre, pour ceux qui préfèrent un système d'administration basé sur une interface graphique ... la console d'administration de GlassFish est extrêmement lisse, alors que la plupart des tâches d'administration dans JBoss se font avec une ligne de commande et un éditeur de texte. GlassFish vient directement de Sun/Oracle, avec tous les avantages qu’il peut offrir. JBoss n'est PAS sous le contrôle de Sun/Oracle, avec tous les avantages que CELA peut offrir.

347
Steve Perkins

Vous devez utiliser GlassFish pour Java applications d'entreprise EE . Quelques points à considérer:

Un serveur Web signifie: Traitement des requêtes HTTP (généralement par les navigateurs).

Un conteneur de servlet (par exemple Tomcat) signifie: . Il peut gérer les servlets et les JSP.

Un serveur d'application (par exemple, GlassFish) signifie: * Il peut gérer les applications Java EE (généralement à la fois les servlets/JSP et les EJB).


Tomcat - est géré par la communauté Apache - Open source et a deux variantes:

  1. Tomcat - Profil Web - léger, contenant uniquement des servlets et ne prenant pas en charge les fonctionnalités Java EE telles que EJB, JMS, etc.
  2. Tomcat EE - Il s'agit d'un conteneur certifié Java EE, prenant en charge toutes les technologies Java EE.

Aucun support commercial disponible (uniquement le support de la communauté)

JBoss - géré par RedHat Il s'agit d'une prise en charge complète de la pile pour JavaEE et il s'agit d'un conteneur certifié Java EE. Cela inclut Tomcat en tant que conteneur Web en interne. Cela a aussi deux saveurs:

  1. Version de la communauté appelée Application Server (AS) - elle ne supportera que la communauté.
  2. Serveur d'applications d'entreprise (EAP) - Pour cela, vous pouvez disposer d'une licence par abonnement (elle dépend du nombre de cœurs que vous avez sur vos serveurs. )

Glassfish - géré par Oracle Il s'agit également d'une pile complète certifiée Java EE Container. Cela a son propre conteneur Web (pas Tomcat). Cela vient d’Oracle lui-même. Par conséquent, toutes les nouvelles spécifications seront d'abord testées et implémentées avec Glassfish. Donc, cela prendrait toujours en charge les dernières spécifications. Je ne suis pas au courant de ses modèles de support.

75
Jaimin Patel

jboss et glassfish incluent un conteneur de servlets (comme Tomcat), mais les deux serveurs d’applications (jboss et glassfish) fournissent également un conteneur de haricots (et quelques autres choses, j’imagine).

13
NimChimpsky

Il semble un peu décourageant d'utiliser Tomcat lorsque vous lisez ces réponses. Cependant, ce que la plupart des gens omettent de mentionner, c'est que vous pouvez obtenir des cas d'utilisation identiques ou presque identiques avec Tomcat, mais cela vous oblige à ajouter les bibliothèques nécessaires (par le biais de Maven ou du système d'inclusion que vous utilisez).

J'utilisais Tomcat avec JPA, des EJB nécessitant très peu de configuration.

7
user2130951

JBoss et Glassfish sont fondamentalement complets Java EE Application Server, tandis que Tomcat est uniquement un conteneur de servlet. La principale différence entre JBoss, Glassfish, mais aussi WebSphere, WebLogic et ainsi de suite par rapport à Tomcat, mais aussi à Jetty, résidait dans la fonctionnalité offerte par un serveur d'applications complet. Lorsque vous disposiez d'un serveur d'applications Java EE à pile complète, vous pouvez bénéficier de toute l'implémentation du fournisseur de votre choix, ainsi que d'EJB, JTA, CDI (Java EE 6+), JPA, JSF, JSP./Servlet bien sur et ainsi de suite. Avec Tomcat, vous ne pouvez bénéficier que de JSP/Servlet. Cependant, avec les frameworks avancés tels que Spring et Guice, l’utilisation d’un serveur d’applications à pile complète peut avoir de nombreux avantages, et en supposant que l’un de ces frameworks soit viril avec Spring Ecosystem, vous pouvez projet qui, dans mon expérience professionnelle, m’a laissé abandonner l’utilisation d’un serveur d’applications à pile complète au profit d’un serveur d’applications léger comme Tomcat.

6
Valerio Vaudi

JBoss et Tomcat sont tous deux Java serveurs d'applications de servlets, mais JBoss en est bien plus. La différence majeure entre les deux réside dans le fait que JBoss fournit une pile complète Java Enterprise Edition (Java EE), y compris Enterprise Java Beans et de nombreuses autres technologies utiles aux développeurs travaillant sur des applications d'entreprise Java. .

Tomcat est beaucoup plus limité. Une façon d’y penser est que JBoss est une pile Java EE qui inclut un conteneur de servlets et un serveur Web, tandis que Tomcat, pour la plupart, est un conteneur de servlets et un serveur Web.

3
Spartan

Apache Tomcat est simplement un conteneur de serverlet qu'il ne prend pas en charge pour l'application Enterprise Java (JEE). JBoss et Glassfish prennent en charge l'application JEE mais Glassfish est beaucoup plus lourd que le serveur JBOSS: diapositive de référence

2