Ich fange an, mich mit Enterprise Java zu beschäftigen, und in dem Buch, dem ich folge, wird erwähnt, dass es JBoss verwenden wird. Netbeans wird mit Glassfish geliefert. Ich habe Tomcat in der Vergangenheit verwendet.
Was sind die Unterschiede zwischen diesen drei Programmen?
Antworten:
Tomcat ist nur ein Servlet-Container, dh es implementiert nur die Servlets und die JSP-Spezifikation. Glassfish und JBoss sind vollständige Java EE-Server (einschließlich EJB, JMS, ...), wobei Glassfish die Referenzimplementierung des neuesten Java EE 6-Stacks ist, aber JBoss im Jahr 2010 hat ihn noch nicht vollständig unterstützt.
quelle
Tomcat ist lediglich ein HTTP-Server und ein Java-Servlet-Container. JBoss und GlassFish sind vollwertige Java EE-Anwendungsserver, einschließlich eines EJB-Containers und aller anderen Funktionen dieses Stacks. Auf der anderen Seite hat Tomcat einen geringeren Speicherbedarf (~ 60-70 MB), während diese Java EE-Server Hunderte von Megabyte wiegen. Tomcat ist sehr beliebt für einfache Webanwendungen oder Anwendungen mit Frameworks wie Spring, für die kein vollständiger Java EE-Server erforderlich ist. Die Verwaltung eines Tomcat-Servers ist wohl einfacher, da weniger bewegliche Teile vorhanden sind.
Für Anwendungen, die einen vollständigen Java EE-Stack erfordern (oder zumindest mehr Teile, die leicht an Tomcat angeschraubt werden können) ... JBoss und GlassFish sind zwei der beliebtesten Open Source-Angebote (das dritte ist Apache Geronimo , auf dem die kostenlose Version von IBM WebSphere basiert). JBoss hat eine größere und tiefere Benutzergemeinschaft und eine ausgereiftere Codebasis. JBoss bleibt jedoch bei der Implementierung der aktuellen Java EE-Spezifikationen deutlich hinter GlassFish zurück. Auch für diejenigen, die ein GUI-basiertes Admin-System bevorzugen ... Die Admin-Konsole von GlassFish ist extrem übersichtlich, während die meiste Verwaltung in JBoss über eine Befehlszeile und einen Texteditor erfolgt. GlassFish kommt direkt von Sun / Oracle und bietet alle Vorteile, die es bieten kann. JBoss steht NICHT unter der Kontrolle von Sun / Oracle, mit all den Vorteilen, die DAS bieten kann.
quelle
Sie sollten GlassFish für Java EE-Unternehmensanwendungen verwenden . Einige Dinge zu beachten:
Tomcat - wird von der Apache-Community betrieben - Open Source und hat zwei Varianten:
Keine kommerzielle Unterstützung verfügbar (nur Community-Unterstützung)
JBoss - Run by RedHat Dies ist eine Full-Stack-Unterstützung für JavaEE und ein zertifizierter Java EE-Container. Dies schließt Tomcat intern als Webcontainer ein. Dies hat auch zwei Geschmacksrichtungen:
Glassfish - Run by Oracle Dies ist auch ein Full-Stack-zertifizierter Java EE Container. Dies hat einen eigenen Webcontainer (nicht Tomcat). Dies kommt von Oracle selbst, daher werden alle neuen Spezifikationen zuerst mit Glassfish getestet und implementiert. Es würde also immer die neueste Spezifikation unterstützen. Mir sind die Unterstützungsmodelle nicht bekannt.
quelle
jboss und glassfish enthalten einen Servlet-Container (wie Tomcat), aber die beiden Anwendungsserver (jboss und glassfish) bieten auch einen Bean-Container (und ein paar andere Dinge, die ich mir auch vorstelle).
quelle
JBoss und Glassfish sind im Grunde genommen vollständige Java EE Application Server, während Tomcat nur ein Servlet-Container ist. Der Hauptunterschied zwischen JBoss, Glassfish, aber auch WebSphere, WebLogic usw. in Bezug auf Tomcat, aber auch Jetty, bestand in der Funktionalität, die ein vollständiger App-Server bietet. Wenn Sie einen Java EE-App-Server mit vollem Stapel hatten, können Sie von der gesamten Implementierung des Anbieters Ihrer Wahl profitieren, und Sie können natürlich von EJB, JTA, CDI (JAVA EE 6+), JPA, JSF, JSP / Servlet profitieren und so weiter. Mit Tomcat hingegen können Sie nur von JSP / Servlet profitieren. Mit fortschrittlichen Frameworks wie Spring und Guice können jedoch viele der Hauptvorteile der Verwendung eines Full-Stack-Anwendungsservers gemindert werden, und unter der Annahme, dass eines dieser Frameworks mit Spring Ecosystem identisch ist,
quelle
Es scheint ein bisschen entmutigend, Tomcat zu verwenden, wenn Sie diese Antworten lesen. Was die meisten jedoch nicht erwähnen, ist, dass Sie mit Tomcat zu identischen oder nahezu identischen Anwendungsfällen gelangen können. Dazu müssen Sie jedoch die erforderlichen Bibliotheken hinzufügen (über Maven oder ein anderes von Ihnen verwendetes Include-System).
Ich habe Tomcat mit JPA, EJBs mit sehr geringem Konfigurationsaufwand ausgeführt.
quelle
Sowohl JBoss als auch Tomcat sind Java-Servlet-Anwendungsserver, aber JBoss ist noch viel mehr. Der wesentliche Unterschied zwischen beiden besteht darin, dass JBoss einen vollständigen Java Enterprise Edition-Stack (Java EE) bereitstellt, einschließlich Enterprise JavaBeans und vieler anderer Technologien, die für Entwickler nützlich sind, die an Java-Unternehmensanwendungen arbeiten.
Tomcat ist viel begrenzter. Eine Möglichkeit ist, dass JBoss ein Java EE-Stack ist, der einen Servlet-Container und einen Webserver enthält, während Tomcat größtenteils ein Servlet-Container und ein Webserver ist.
quelle
Apache Tomcat ist nur ein einziger Serverlet-Container, der für Enterprise Java-Anwendungen (JEE) nicht unterstützt wird. JBoss und Glassfish unterstützen JEE-Anwendungen, aber Glassfish ist viel schwerer als der JBOSS-Server: Referenzfolie
quelle