Dies scheint die uralte Frage zu sein (was es ist :)), welcher Server zwischen Tomcat und JBoss besser ist, aber ich habe noch keine ausreichend gute Antwort gefunden, um mein Problem zu lösen.
Ich weiß, dass Tomcat nur eine Servlet-Engine ist und JBoss viel mehr Funktionen bietet, aber ich verstehe nicht, warum Tomcat in manchen Situationen besser zu verwenden ist als jboss. Ich habe irgendwo gelesen, dass JBoss eine steckbare Architektur hat und bei Bedarf können Sie Funktionen von JBoss trennen, um es im Wesentlichen zu einem Tomcat-Servlet-Container zu machen. Wenn dies der Fall ist, ist es nicht besser, dies zu tun, als Tomcat zu verwenden, um Spielraum für das Zurückstecken von Dingen zu lassen.
Eine andere Erklärung, die ich für Tomcat finde, ist, dass es leichtgewichtig ist, weniger Speicherbedarf bedeutet oder auch eine schnellere Reaktion ermöglicht. Auch hier muss ich wissen, dass jboss keine Komponenten gemäß den Anforderungen lädt, dh wenn ich nur Servlets verwende, dann überspringt jboss nicht den Rest der Funktionen und wird automatisch leichtgewichtig.
Im Wesentlichen verfügt meine Anwendung über keine Java EE-Funktionen, aber die "leichten" Argumente für Tomcat klingen aus den oben genannten Gründen nicht überzeugend genug.
Bitte helfen Sie.
Bearbeiten: Wir hatten uns damals endlich für Tomcat entschieden und verwenden es seit mehr als 6 Monaten mit großer Benutzerfreundlichkeit. Tatsächlich haben wir eine praktische Anwendung gefunden, bei der wir sehr einfach mehrere Tomcat-Instanzen auf demselben Server für verschiedene Entwickler ausführen konnten. Dasselbe hätte mit jboss sehr schwierig sein können.
Ich habe festgestellt, dass Tomcat für unsere Arbeit problemlos ist und daher möglicherweise die richtige Wahl ist, wenn Sie nicht viele Java EE-Funktionen verwenden. PS: Bitte beachten Sie, dass wir Spring and Hibernate weiterhin mit Tomcat verwenden
Antworten:
Erstens die Fakten, keiner ist besser . Wie bereits erwähnt, bietet Tomcat einen Servlet-Container, der die Servlet-Spezifikation unterstützt (Tomcat 7 unterstützt Servlet 3.0). JBoss AS, ein "vollständiger" Anwendungsserver, unterstützt Java EE 6 (einschließlich Servlet 3.0) in seiner aktuellen Version.
Tomcat ist recht leicht und falls Sie bestimmte Java EE-Funktionen über die Servlet-API hinaus benötigen, können Sie Tomcat problemlos erweitern, indem Sie die erforderlichen Bibliotheken als Teil Ihrer Anwendung bereitstellen. Wenn Sie beispielsweise JPA-Funktionen benötigen, können Sie Hibernate oder OpenEJB einschließen, und JPA funktioniert fast sofort .
So entscheiden Sie, ob Sie Tomcat oder einen Full-Stack-
Java EE
Anwendungsserver verwenden:Wenn Sie Ihr Projekt starten, sollten Sie eine Vorstellung davon haben, was es erfordert. Wenn Sie sich in einer großen Unternehmensumgebung befinden, ist JBoss (oder ein anderer Java EE-Server) möglicherweise die richtige Wahl, da es integrierte Unterstützung bietet für z.
Meiner Meinung nach passt Tomcat sehr gut zu webzentrierten, benutzerorientierten Anwendungen. Wenn die Backend-Integration ins Spiel kommt, sollte (zumindest) ein Java EE-Anwendungsserver in Betracht gezogen werden. Last but not least sollte die Migration eines für Tomcat entwickelten WAR nach JBoss eine eintägige Übung sein.
Zweitens sollten Sie auch die Verwendung in Ihrer Umgebung berücksichtigen. Wenn in Ihrer Organisation bereits 1.000 JBoss-Instanzen ausgeführt werden, können Sie dies unabhängig von Ihren konkreten Anforderungen immer tun (berücksichtigen Sie Aspekte wie Betriebskosten oder Weiterbildung). Dies gilt natürlich auch umgekehrt.
meine 2 Cent
quelle
Schauen Sie sich TOMEE an
Es verfügt über alle Funktionen, die Sie zum Erstellen einer vollständigen Java EE-App benötigen.
quelle
Ich würde auf jeden Fall auf TomEE schauen, da die Idee dahinter ist, dass Tomcat die gesamte JavaEE 6-Integration standardmäßig vermisst. Das ist eine Art sehr guter Kompromiss
quelle
Genau genommen; Ohne Java EE-Funktionen benötigt Ihre App kaum einen App-Server ;-)
Wie andere bereits betont haben, verfügt JBoss über einen (mehr oder weniger) vollständigen Java EE-Stack, während Tomcat nur ein Webcontainer ist. JBoss kann so konfiguriert werden, dass es auch nur als Webcontainer dient. Es wäre dann nur ein dünner Wrapper um den enthaltenen Tomcat-Webcontainer. Auf diese Weise könnten Sie einen fast so leichten JBoss haben, der eigentlich nur eine dünne "Hülle" um Tomcat wäre. Das wäre fast so leicht.
Wenn Sie keine der Extras benötigen, die JBoss zu bieten hat, wählen Sie die, mit der Sie sich am wohlsten fühlen. Welches ist für Sie am einfachsten zu konfigurieren und zu warten?
quelle
Ich habe auch gelesen, dass für einige Server beispielsweise nur Persistenzkontexte mit Anmerkungen versehen werden müssen, bei einigen Servern sollte die Injektion jedoch manuell erfolgen.
quelle