webentwicklung-frage-antwort-db.com.de

Wieder JBoss gegen Tomcat

Dies scheint die uralte Frage zu sein (welche es ist :)), welcher Server zwischen Tomcat und JBoss besser ist, aber ich habe noch keine ausreichende Antwort gefunden, um mein Problem zu lösen.

Ich weiß, dass Tomcat nur eine Servlet-Engine ist und JBoss viele weitere Funktionen bietet, aber ich verstehe nicht, warum Tomcat in manchen Situationen besser zu verwenden ist als JBoss. Ich habe irgendwo gelesen, dass JBoss über eine steckbare Architektur verfügt und Sie bei Bedarf Funktionen von JBoss entfernen können, um es im Wesentlichen zu einem Tomcat-Servlet-Container zu machen. Wenn dies der Fall ist, ist es nicht besser, dies anstelle von Tomcat zu tun, um Spielraum für das Zurückstecken zu lassen.

Eine weitere Erklärung, die ich für Tomcat finde, ist das geringe Gewicht, der geringere Speicherbedarf oder auch eine schnellere Reaktion. Auch hier muss ich wissen, dass JBoss keine Komponenten gemäß den Anforderungen lädt, d. H., Wenn ich nur Servlets verwende, überspringt JBoss nicht den Rest der Funktionen und wird automatisch zu einem Lightweight.

Grundsätzlich hat meine Anwendung keine Java EE-Funktionen, aber die 'schlanken' Argumente für Tomcat klingen aus den oben genannten Gründen nicht überzeugend genug.

Bitte helfen Sie.

Bearbeiten: Wir hatten uns damals endgültig für Tomcat entschieden und verwenden es seit mehr als 6 Monaten mit großer Benutzerfreundlichkeit. In der Tat haben wir eine praktische Anwendung gefunden, bei der es sehr einfach ist, mehrere Tomcat-Instanzen auf demselben Server für verschiedene Entwickler auszuführen. Dasselbe könnte mit jboss sehr schwierig gewesen sein.

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 weiterhin Spring und Hibernate mit verwenden Kater

138
Ashish

Erstens ist der Sachverhalt weder noch 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 relativ kompakt und für den Fall, dass Sie bestimmte Java EE-Funktionen außerhalb der Servlet-API benötigen, können Sie Tomcat problemlos erweitern, indem Sie die erforderlichen Bibliotheken als Teil Ihrer Anwendung bereitstellen. Zum Beispiel, wenn Sie JPA benötigen Funktionen, die Sie in Hibernate oder OpenEJB einbinden können, und JPA funktioniert fast sofort.

Wie soll entschieden werden, ob Tomcat oder ein vollständiger Stack verwendet werden soll? Java EE Anwendungsserver:

Wenn Sie Ihr Projekt starten, sollten Sie eine Idee 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 asynchrone Integration
  2. Web Services Engine (JAX-WS und/oder JAX-RS)
  3. Verwaltungsfunktionen wie JMX und eine skriptbasierte Administrationsoberfläche
  4. Erweiterte Sicherheit, z. Out-of-the-Box-Integration mit Verzeichnissen von Drittanbietern
  5. EAR-Datei statt "nur" Unterstützung für WAR-Dateien
  6. all die anderen "tollen" Java EE Features, an die ich mich nicht erinnern kann :-)

Meiner Meinung nach ist Tomcat eine sehr gute Wahl, wenn es um webbasierte, benutzerorientierte Anwendungen geht. Wenn die Backend-Integration ins Spiel kommt, sollte (zumindest) ein Java= EE-Anwendungsserver in Betracht gezogen werden. Zu guter Letzt sollte die Migration eines für Tomcat entwickelten WAR zu JBoss eine eintägige Übung sein.

Zweitens sollten Sie auch die Verwendung in Ihrer Umgebung berücksichtigen. Wenn Ihre Organisation bereits 1.000 JBoss-Instanzen ausführt, können Sie dies unabhängig von Ihren konkreten Anforderungen tun (berücksichtigen Sie Aspekte wie Betriebskosten oder Qualifizierung). Das gilt natürlich auch umgekehrt.

meine 2 cent

132
home

Schauen Sie sich TOMEE an

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

13
Deb J

Ich würde auf jeden Fall auf TomEE schauen, da die Idee dahinter ist, Tomcat so zu halten, dass standardmäßig die gesamte JavaEE 6-Integration fehlt. Das ist eine Art sehr guter Kompromiss

7

Genau genommen; Ohne Java EE-Features benötigt Ihre App kaum einen App-Server ;-)

Wie bereits erwähnt, hat JBoss einen (mehr oder weniger) vollen Java EE-Stack, während Tomcat nur ein Webcontainer ist. JBoss kann so konfiguriert werden, dass es nur als Webcontainer fungiert Seien Sie einfach ein dünner Wrapper um den enthaltenen Tomcat-Webcontainer. Auf diese Weise könnten Sie einen fast so leichten JBoss haben, der eigentlich nur ein dünner "Wrapper" 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 diejenige, mit der Sie sich am wohlsten fühlen. Welches ist für Sie am einfachsten zu konfigurieren und zu warten?

6

Ich habe auch gelesen, dass man zum Beispiel für einige Server nur Persistenzkontexte mit Anmerkungen versehen muss, aber bei einigen Servern sollte die Injektion manuell erfolgen.

2
Antti Tanskanen