Conteneurs Java EE vs Conteneurs Web


Je suis relativement nouveau sur Java EE/EJB, et j'ai beaucoup lu concernant les conteneurs Java EE. J'ai eu de l'expérience avec un conteneur Web (fichier de guerre dans jboss). Je suis également conscient que Jboss peut également être utilisé comme conteneur Java EE.

Ma question est, quelle est la différence entre un conteneur Java EE et un conteneur Web?

Je sais que Java EE est également capable de contenir un .la guerre de fichier. Sont-ils différents et quelles sont leurs différences? Existe t il un fournisseur de préférences spécifique-sage quel est le meilleur?

Author: Arjan Tijms, 2013-06-19

5 answers

Tout d'abord, "J2EE" est une abréviation obsolète, il est maintenant simplement appelé "Java Enterprise Edition" ou Java EE.

Contrairement au conteneur de servlet (par exemple Tomcat), les serveurs d'applications Java EE "complets" contiennent également un conteneur EJB. EJB sont des Beans Java d'entreprise et vous pouvez en lire beaucoup à leur sujet par exempleici (chapitre IV). Les EJB sont maintenant en version 3.2 (Java EE 7 et Java EE 8), les versions précédentes sont 3.1 (Java EE 6) et 3.0 (Java EE 5); cependant, la plus grande différence est entre v2 et v3.

Les EJB sont conçus pour conserver une logique métier de votre application. Par exemple, le bean de session sans état peut calculer quelque chose, ou représenter un service Web ou tout ce que votre application doit faire. Les beans pilotés par message peuvent écouter sur les files d'attente de messages, ils sont donc utiles si vous souhaitez une communication asynchrone. Les haricots Singleton garantissent une instance par haricot, etc.

En ce qui concerne le type de fichier, EJB est emballé dans un .fichier jar, application Web dans un .fichier war, et si vous voulez les mélanger dans une seule application, ce serait le .fichier ear ("enterprise archive").

À côté des EJBs, le serveur d'applications "complet" prend également en charge les transactions, la sécurité, les ressources JDBC... Je recommanderais fortement de l'utiliser sur un conteneur de servlet, mais les avantages viennent avec la complexité, vous devrez donc passer un temps raisonnable pour apprendre à gérer, par exemple Websphere (Payara et WildFly sont beaucoup plus simples, et sont mes favori). JBoss et Weblogic sont également très populaires, et si vous êtes familier avec Tomcat prendre un coup d'oeil à TomEE.

 80
Author: Miljen Mikic, 2018-02-17 18:41:40

Conteneur Java EE: Gère l'exécution d'EJB, JMS, JTA exécutés sur le serveur Java EE, par exemple JBoss, Glassfish.

Conteneur Web: Gère l'exécution de pages Web, de servlets et de certains composants EJB pour les applications Java EE. Les composants Web et leur conteneur s'exécutent sur le serveur Web tel que Jetty, tomcat.

 27
Author: Masudul, 2013-06-20 09:17:14

Le conteneur web et le conteneur EJB sont des sous-ensembles de conteneurs Java EE. Les conteneurs Java EE englobent également le conteneur client d'application et le conteneur applet .

Voici ce que dit le doc:

Le processus de déploiement installe les composants de l'application Java EE dans le Conteneurs Java EE.

  • Java EE server: La partie d'exécution d'un produit Java EE. Un serveur Java EE fournit EJB [conteneur et web conteneur]*.

  • Enterprise JavaBeans (EJB) container: Gère l'exécution des beans d'entreprise pour les applications Java EE. Haricots d'entreprise et leur conteneur exécuté sur le serveur Java EE.

  • Web container : Gère l'exécution des composants de page et de servlet JSP pour les applications Java EE. Composants Web et leurs
    conteneur exécuté sur le serveur Java EE.

  • Conteneur client d'application: Gère l'exécution des composants de l'application client. Clients de l'application et leur conteneur exécuté sur le client.

  • Applet conteneur: Gère l'exécution des applets. Se compose d'un navigateur Web et d'un plug-in Java s'exécutant ensemble sur le client.

*Dans le doc, ils utilisent le formulaire pluriel, mais en fait, vous n'avez qu'un conteneur Web et un conteneur EJB par serveur Java EE.

 3
Author: Leopold Gault, 2016-12-07 09:20:12

Je pense que peut-être la différence entre eux sont les protocoles qu'ils prennent en charge。

Par exemple,nous n'essayons pas de gérer la transaction dans un conteneur web,comme tomcat, nous essayons généralement de contrôler dans le web-proj déployé dans tomcat。alors que le serveur web / app comme ejb prend le contraire。

 0
Author: spectator, 2014-12-12 03:08:31

Un conteneur java EE est une solution de serveur d'applications qui prend en charge un conteneur web, EJB 3 et d'autres API et services Java EE, Oracle WebLogic server, GlassFish server, IBM WebSphere application server, JBoss Application server et Caucho Resin sont des exemples de conteneurs Java EE... J'espère que cela répondra à votre requête

 0
Author: arif khan, 2017-09-29 08:50:22