JBoss vs Tomcat à nouveau [fermé]

138

Cela semblera être la vieille question (ce que c'est :)) quel serveur est le meilleur entre Tomcat et JBoss, mais je n'ai pas encore trouvé de réponse assez bonne pour résoudre mon problème.

Je sais que Tomcat n'est qu'un moteur de servlet et que JBoss offre beaucoup plus de fonctionnalités prêtes à l'emploi, mais ce que je ne comprends pas, c'est pourquoi Tomcat est préférable d'utiliser dans certaines situations que jboss. J'ai lu quelque part que JBoss a une architecture enfichable et si nécessaire, vous pouvez débrancher les fonctionnalités de JBoss pour en faire essentiellement un conteneur de servlet tomcat. Si tel est le cas, alors n'est-il pas préférable de le faire au lieu d'utiliser Tomcat, afin de laisser la possibilité de brancher les choses.

Une autre explication que je trouve en faveur de Tomcat est qu'il est léger, est-ce que cela signifie moins de mémoire ou permet également une réponse plus rapide. Encore une fois, j'ai besoin de savoir que jboss ne chargera pas les composants selon les exigences, c'est-à-dire que si je n'utilise que des servlets, alors jboss ne sautera pas le reste des fonctionnalités et ne deviendra automatiquement léger.

Essentiellement, mon application ne dispose d'aucune fonctionnalité Java EE, mais les arguments «légers» en faveur de Tomcat ne semblent pas suffisamment convaincants pour les raisons mentionnées ci-dessus.

Veuillez aider.

Edit: Nous avions finalement décidé d'utiliser tomcat à l'époque et nous l'utilisons depuis plus de 6 mois maintenant avec une grande facilité d'utilisation. En fait, nous avons trouvé une utilisation pratique où nous pourrions très facilement exécuter plusieurs instances de tomcat sur la même machine serveur pour différents développeurs, la même chose aurait pu être très difficile avec jboss.

J'ai trouvé que tomcat était sans tracas pour notre travail et peut donc être le bon choix lorsque vous n'utilisez pas beaucoup de fonctionnalités de Java EE. PS: Veuillez noter que nous utilisons toujours Spring et Hibernate avec Tomcat

Ashish
la source
1
Euh, JBoss ne s'intègre-t-il pas à Tomcat?
Navi
4
@Navi: Pas vraiment. Il contient une version fourchue de la base de code Tomcat, mais elle a beaucoup divergé.
skaffman
1
Une application Web simple, sans fonctionnalités j2ee, devrait se déployer facilement sur n'importe quel conteneur de servlet conforme. Compte tenu de cela, peu importe celui que vous utilisez à l'avance. Je commencerais par le plus simple à déployer (Tomcat et Jetty m'ont bien servi dans le passé).
Joel le
3
Pour info, à la fin de 2011, Tomcat était certifié JavaEE 6 comme TomEE pour répondre à cette question séculaire.
David Blevins
1
une question fermée avec environ 150K vues, 125 votes positifs et 0 votes négatifs? !! Je sais que ce sont les règles, mais je dois dire que ces règles doivent être légèrement modifiées.
Muhammed Refaat

Réponses:

132

Premièrement les faits, ni l'un ni l'autre n'est mieux . Comme vous l'avez déjà mentionné, Tomcat fournit un conteneur de servlet qui prend en charge la spécification Servlet (Tomcat 7 prend en charge Servlet 3.0). JBoss AS, un serveur d'applications «complet» prend en charge Java EE 6 (y compris Servlet 3.0) dans sa version actuelle.

Tomcat est assez léger et au cas où vous auriez besoin de certaines fonctionnalités Java EE au-delà de l'API Servlet, vous pouvez facilement améliorer Tomcat en fournissant les bibliothèques requises dans le cadre de votre application. Par exemple, si vous avez besoin de fonctionnalités JPA, vous pouvez inclure Hibernate ou OpenEJB et JPA fonctionne presque immédiatement .

Comment décider d'utiliser Tomcat ou un Java EEserveur d'applications full stack :

Au démarrage de votre projet, vous devez avoir une idée de ce dont il a besoin. Si vous êtes dans un environnement de grande entreprise, JBoss (ou tout autre serveur Java EE) peut être le bon choix car il fournit une prise en charge intégrée, par exemple:

  1. Messagerie JMS pour l'intégration asynchrone
  2. Moteur de services Web (JAX-WS et / ou JAX-RS)
  3. Capacités de gestion comme JMX et une interface d'administration scriptée
  4. Sécurité avancée, par ex. Intégration prête à l'emploi avec des répertoires tiers
  5. Fichier EAR au lieu de "uniquement" prise en charge des fichiers WAR
  6. toutes les autres "super" fonctionnalités Java EE dont je ne me souviens plus :-)

À mon avis, Tomcat est un très bon choix pour les applications centrées sur le Web et destinées aux utilisateurs. Si l'intégration backend entre en jeu, un serveur d'applications Java EE doit (au moins) être envisagé. Enfin, la migration d'un WAR développé pour Tomcat vers JBoss devrait être un exercice d'une journée.

Deuxièmement, vous devez également prendre en compte l'utilisation dans votre environnement. Dans le cas où votre organisation exécute déjà, disons 1000 instances JBoss, vous pouvez toujours opter pour cela, quelles que soient vos exigences concrètes (prenez en compte des aspects tels que le coût des opérations ou l'amélioration des compétences). Bien sûr, cela s'applique vice versa.

mes 2 centimes

Accueil
la source
13

Jetez un œil à TOMEE

Il possède toutes les fonctionnalités dont vous avez besoin pour créer une application Java EE complète.

Deb J
la source
7

Je me tournerais certainement vers TomEE car l'idée derrière est de garder Tomcat en apportant toute l'intégration JavaEE 6 manquante par défaut. C'est une sorte de très bon compromis

Romain Manni-Bucau
la source
6

À proprement parler; En l'absence de fonctionnalités Java EE, votre application n'a pratiquement pas besoin d'un serveur d'applications ;-)

Comme d'autres l'ont souligné, JBoss a une pile Java EE (plus ou moins) complète alors que Tomcat est uniquement un conteneur Web. JBoss peut également être configuré pour servir uniquement de conteneur Web, il ne s'agirait alors que d'un mince wrapper autour du conteneur Web Tomcat inclus. De cette façon, vous pourriez avoir un JBoss presque aussi léger, qui ne serait en fait qu'un mince "wrapper" autour de Tomcat. Ce serait presque aussi léger.

Si vous n'avez besoin d'aucun des extras que JBoss a à offrir, optez pour celui avec lequel vous êtes le plus à l'aise. Lequel est le plus simple à configurer et à maintenir pour vous?

Jon Martin Solaas
la source
1
comment est-il difficile d'utiliser les services Web et jmx avec tomcat, pouvez-vous s'il vous plaît fournir de bonnes références / liens
Ashish
2

J'ai également lu que pour certains serveurs, par exemple, il suffit d'annoter les contextes de persistance, mais dans certains serveurs, l'injection doit être effectuée manuellement.

Antti Tanskanen
la source