JBoss gegen Tomcat wieder [geschlossen]


138

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


1
Ähh, integriert sich JBoss nicht in Tomcat?
Navi

4
@ Navi: Nicht wirklich. Es enthält eine gegabelte Version der Tomcat-Codebasis, ist jedoch ziemlich unterschiedlich.
Skaffman

1
Eine einfache Web-App ohne j2ee-Funktionen sollte problemlos auf jedem kompatiblen Servlet-Container bereitgestellt werden können. Vor diesem Hintergrund sollte es nicht allzu wichtig sein, welches Sie im Voraus verwenden. Ich würde mit der einfachsten Bereitstellung beginnen (Tomcat und Jetty haben mir in der Vergangenheit beide gute Dienste geleistet).
Joel

3
Zu Ihrer Information , Ende 2011 wurde Tomcat JavaEE 6 als TomEE zertifiziert , um diese uralte Frage zu beantworten.
David Blevins

1
eine geschlossene Frage mit ca. 150.000 Views, 125 Upvotes und 0 Downvotes? !! Ich weiß, dass dies die Regeln sind, aber ich muss sagen, dass solche Regeln ein wenig geändert werden müssen.
Muhammed Refaat

Antworten:


132

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 EEAnwendungsserver 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.

  1. JMS-Messaging für die asynchrone Integration
  2. Web Services Engine (JAX-WS und / oder JAX-RS)
  3. Verwaltungsfunktionen wie JMX und eine Skript-Administrationsoberfläche
  4. Erweiterte Sicherheit, z. B. sofort einsatzbereite Integration in Verzeichnisse von Drittanbietern
  5. EAR-Datei statt "nur" Unterstützung für WAR-Dateien
  6. all die anderen "großartigen" Java EE-Funktionen, an die ich mich nicht erinnern kann :-)

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


13

Schauen Sie sich TOMEE an

Es verfügt über alle Funktionen, die Sie zum Erstellen einer vollständigen Java EE-App benötigen.


7

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


6

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?


1
Wie schwierig ist es, Webdienste und JMX mit Tomcat zu nutzen? Können Sie bitte einige gute Referenzen / Links
Ashish

2

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.