J'essaye de comprendre la différence entre un serveur d'application à part entière (par exemple Weblogic, JBoss etc.) et un conteneur de servlet (Tomcat, Jetty etc.).
En quoi diffèrent-ils et quand les utiliser?
Merci,
J'essaye de comprendre la différence entre un serveur d'application à part entière (par exemple Weblogic, JBoss etc.) et un conteneur de servlet (Tomcat, Jetty etc.).
En quoi diffèrent-ils et quand les utiliser?
Merci,
Réponses:
Un conteneur de servlet prend en charge uniquement l'API de servlet (y compris JSP, JSTL).
Un serveur d'applications prend en charge l'ensemble de JavaEE - EJB, JMS, CDI, JTA, l'API de servlet (y compris JSP, JSTL), etc.
Il est possible d'exécuter la plupart des technologies JavaEE sur un conteneur de servlet, mais vous devez installer une implémentation autonome de la technologie particulière.
De manière générale, un conteneur de servlet se limite plus ou moins à l'implémentation de la spécification Servlet J2EE. En outre, il se concentre sur l'environnement d'exécution et pas tellement sur la fourniture d'outils supplémentaires.
En revanche, un serveur d'applications à part entière implémente toute la pile J2EE; De plus, il est livré avec tous les outils d'entreprise et les possibilités d'intégration. Un serveur d'applications a généralement des interfaces d'administration avancées, il prend en charge le clustering et d'autres fonctionnalités utilisées principalement dans le développement de systèmes haut de gamme.
Pour un débutant, il est probablement préférable de rester avec un simple conteneur de servlet, car la courbe d'apprentissage y est beaucoup moins raide.
Éditer
@Apache Fan: Cela dépend des spécificités de votre situation comme les systèmes existants et les projets futurs entre autres. Je ne pense pas qu'une approche générique d'organigramme soit applicable ici.
La sélection de la plate-forme se fait généralement en évaluant les exigences spécifiques par rapport à la connaissance de première main des systèmes considérés.
Cependant, la question ne donne aucun indice sur les critères d'évaluation. Doit-il être open source? Un support fournisseur 24 heures sur 24 est-il nécessaire? À quel type d'environnement d'entreprise le système doit-il s'intégrer? Les frais de licence sont-ils un problème? Des technologies ou des outils indispensables? Etc.
Sans savoir ce qui précède, c'est à peu près photographier dans le noir.
Fondamentalement, un serveur d'application dans un contexte Java EE est un logiciel installé sur un serveur et qui implémente une spécification Java EE (Java EE 7 par exemple). Cela signifie qu'un tel logiciel (serveur d'application) doit pouvoir exécuter l'application Java EE.
Java EE définit 4 domaines, appelés conteneurs :
Deux conteneurs font partie du serveur d'application (EJB et conteneur Web) et deux autres font partie de l'ordinateur client.
JBoss et Weblogic sont des serveurs d'applications, Tomcat et Jetty sont des conteneurs Web. C'est pourquoi JBoss et Weblogic peuvent gérer plus de technologies qu'un conteneur Web. Le serveur d'applications peut gérer les EJB.
Le conteneur de servlet n'est pas l'expression appropriée pour qualifier Tomcat et Jetty car il est plus restrictif. Tomcat peut également exécuter JSP et JSF, pas seulement des servlets.
afaik, websphere et jboss sont des serveurs j2ee entièrement compatibles qui peuvent fonctionner au-delà des servlets, comme EJB, alors que Tomcat est juste un conteneur de servlet et vous ne pouvez pas exécuter d'EJB dessus.
En termes simples: Un serveur Web signifie: Gérer les requêtes HTTP (généralement des navigateurs).
Un conteneur de servlet (par exemple Tomcat) signifie: Il peut gérer les servlets et JSP.
Un serveur d'applications (par exemple GlassFish) signifie: * Il peut gérer des applications Java EE (généralement à la fois servlet / JSP et EJB).
Pour un débutant, il vaut probablement mieux rester avec un simple conteneur de servlet.