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

Je commence à regarder dans Enterprise Java et le livre que je suis 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?

400
demandé sur RAnders00 2010-09-29 16:41:30

8 réponses

Tomcat est juste un conteneur de servlet, c'est-à-dire qu'il n'implémente que les servlets et la spécification JSP. Glassfish et JBoss sont des serveurs Java EE complets (y compris des choses comme EJB, JMS, ...), avec Glassfish étant l'implémentation de référence de la dernière pile Java EE 6, mais JBoss en 2010 ne le supportait pas encore complètement.

471
répondu Petar Minchev 2018-03-21 13:04:05

Tomcat est simplement un serveur HTTP et un conteneur de servlet Java. JBoss et GlassFish sont des serveurs D'applications Java EE à part entière, y compris un conteneur EJB et toutes les autres fonctionnalités de cette pile. D'autre part, Tomcat a une empreinte mémoire plus légère (~60-70 Mo), tandis que ces serveurs Java EE pèsent à des centaines de méga. Tomcat est très populaire pour les applications web simples, ou les applications utilisant des frameworks tels que Spring qui ne nécessitent pas un serveur Java EE complet. L'Administration d'un Tomcat server est sans doute plus facile, car il y a moins de pièces mobiles.

Cependant, pour les applications qui nécessitent une pile Java EE complète (ou au moins plus de pièces qui pourraient facilement être boulonnées sur Tomcat)... JBoss et GlassFish sont deux des offres open source les plus populaires (Le troisième est Apache Geronimo, sur lequel la version gratuite D'IBM WebSphere est construite). JBoss a une communauté d'utilisateurs plus grande et plus profonde, et une base de code plus mature. Cependant, JBoss accuse un retard important GlassFish dans l'implémentation des spécifications Java EE actuelles. En outre, pour ceux qui préfèrent un système d'administration basé sur L'interface graphique... La console d'administration de GlassFish est extrêmement lisse, alors que la plupart de L'administration dans JBoss se fait avec une ligne de commande et un éditeur de texte. GlassFish vient directement de Sun / Oracle, avec tous les avantages qui peuvent offrir. JBoss N'est pas sous le contrôle de Sun / Oracle, avec tous les avantages qui peuvent offrir.

335
répondu Steve Perkins 2013-04-05 06:46:11

Vous devriez utiliser GlassFish pour les applications Java EE enterprise. Certaines choses à considérer:

Un serveur web signifie: Gérer les requêtes HTTP (généralement de navigateur).

Un Conteneur de Servlet (par exemple, Tomcat) signifie: , Il peut gérer les servlets & JSP.

Un serveur D'Applications (par exemple GlassFish) signifie :* Il peut gérer Applications Java EE (généralement à la fois servlet/JSP et Ejb).


Tomcat - est géré par la communauté Apache-Open source et a deux saveurs Tomcat-profil Web-poids léger qui est seulement un conteneur de servlet et ne prend pas en charge les fonctionnalités Java EE comme EJB, JMS, etc. Tomcat EE - ceci est un conteneur certifié Java EE, cela prend en charge toutes les technologies Java EE.

Aucun soutien commercial disponible (seulement soutien communautaire)

JBoss - géré par RedHat Ceci est un support de pile complet pour JavaEE et c'est un conteneur Java EE certifié. Cela inclut Tomcat en tant que conteneur web en interne. Cela a aussi deux saveurs Version de la communauté appelée Application Server (AS) - cela n'aura que le support de la communauté Enterprise Application Server (EAP) - pour cela, vous pouvez avoir une licence basée sur l'abonnement (elle est basée sur le nombre de cœurs que vous avez sur vos serveurs.)

Glassfish, géré par Oracle Ceci est également un conteneur Java EE certifié par pile complète. Cela a son propre conteneur web (pas Tomcat). Ce vient D'Oracle lui-même,donc toutes les nouvelles spécifications seront testées et implémentées avec Glassfish en premier. Donc, toujours il soutiendrait la dernière spécification. Je ne suis pas au courant de ses modèles de soutien.

63
répondu Jaimin Patel 2016-09-06 06:12:17

Jboss et glassfish incluent un conteneur de servlet (comme tomcat), mais les deux serveurs d'applications (jboss et glassfish) fournissent également un conteneur bean (et quelques autres choses aussi j'imagine)

12
répondu NimChimpsky 2012-01-18 10:57:17

JBoss et Glassfish sont essentiellement un serveur D'applications Java EE complet alors que Tomcat n'est qu'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, était dans la fonctionnalité qu'un serveur d'applications complet offre. Lorsque vous aviez une pile complète Java EE app server, vous pouvez bénéficier de toute l'implémentation du fournisseur de votre choix, et vous pouvez bénéficier D'EJB, JTA, CDI (JAVA EE 6+), JPA, JSF, JSP / Servlet bien sûr et ainsi de suite sur. Avec Tomcat d'autre part, vous ne pouvez bénéficier que de JSP / Servlet. Cependant le jour avec fonctions avancées de Framework comme Spring et Guice, beaucoup de l'avantage principal de l'utilisation d'une pile complète de l'application serveur peut être atténuer, et avec l'hypothèse d'un de ce cadre viril avec le Printemps de l'Écosystème, vous pouvez bénéficier de nombreux sous-projet dans le mon expérience de travail m'a laissé à gauche de l'utilisation d'une pile pleine serveur d'application en faveur de léger serveur d'application comme tomcat.

4
répondu Valerio Vaudi 2016-03-23 15:17:45

JBoss et Tomcat sont tous deux des serveurs D'applications Java servlet, mais JBoss est beaucoup plus. La différence substantielle entre les deux est que JBoss fournit une pile Java Enterprise Edition (Java EE) complète, y compris Enterprise JavaBeans et de nombreuses autres technologies utiles aux développeurs travaillant sur des applications Java d'entreprise.

Tomcat est beaucoup plus limité. Une façon de penser est que JBoss est une pile Java EE qui inclut un conteneur de servlet et un serveur web, alors que Tomcat, pour la plupart, est un conteneur de servlet et un serveur web.

3
répondu Spartan 2015-07-28 07:12:56

Apache tomcat est juste un seul conteneur de serverlet qu'il ne supporte pas pour L'application Java D'entreprise (JEE). JBoss et Glassfish prennent en charge L'application JEE mais Glassfish est beaucoup plus lourd que le serveur JBOSS: reference Slide

1
répondu Oshi_007 2017-07-26 09:23:39

Il semble un peu décourageant d'utiliser Tomcat lorsque vous lisez ces réponses. Cependant, ce que la plupart ne mentionnent pas, 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 (via Maven ou tout autre système que vous utilisez).

J'ai exécuté tomcat avec JPA, EJBs avec de très petits efforts de configuration.

1
répondu user2130951 2017-08-02 06:34:29