Java EE Conteneurs vs Conteneurs Web

je suis relativement nouveau à Java EE / EJB, et j'ai beaucoup lu au sujet des conteneurs Java EE. J'ai travaillé avec un conteneur web (WAR file in jboss). Je suis également conscient que Jboss peut également être utilisé comme un 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 aussi capable de contenir un .la guerre de fichier. Sont-ils différents et quelles sont leurs différences? Existe-il des préférences fournisseur de sages-ce qui est mieux?

39
demandé sur Arjan Tijms 2013-06-19 04:52:17

5 réponses

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

contrairement au conteneur servlet (par exemple Tomcat), les serveurs D'application Java EE "complets" contiennent aussi un conteneur EJB. EJB (Enterprise Java Beans et vous pouvez lire beaucoup de choses sur eux, par exemple ici (chapitre IV). Les EJB sont maintenant dans la 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 le plus grand la différence est entre v2 et v3.

EJBs sont conçus pour garder une logique d'affaires de votre application. Par exemple, stateless session bean peut calculer quelque chose, ou représenter un service Web ou quoi que votre application doit faire. Les haricots axés sur les messages peuvent être écoutés sur les files d'attente de messages, ils sont donc utiles si vous voulez 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, Web application en un .war file, 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'application "complet" s'occupe aussi des transactions, de la sécurité, des ressources JDBC... Je recommande fortement de l'utiliser sur un container servlet, mais les avantages viennent avec la complexité de sorte que vous aurez à passer un temps raisonnable pour apprendre à traiter avec, par exemple Websphere ( Payara et WildFly sont beaucoup plus simples, et qui sont mes préférés). JBoss et Weblogic sont également très populaires, et si vous êtes familier avec Tomcat jeter un oeil à TomEE.

80
répondu Miljen Mikic 2018-02-17 18:41:40

Java EE container: gère L'exécution D'EJB, JMS, JTA sur le serveur Java EE par exemple JBoss, Glassfish.

conteneur Web: gère l'exécution des pages web, des servlets et de certains composants EJB pour les applications Java EE. Les composants Web et leur conteneur fonctionnent sur le serveur Web comme Jetty, tomcat.

27
répondu 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 client de l'application conteneur et applet conteneur.

voici ce que le doc dit:

le processus de déploiement installe des composants D'application Java EE dans le Des conteneurs Java EE.

  • serveur Java EE: la partie exécutable D'un produit Java EE. Un Java EE server fournit EJB [conteneur et conteneur web]*.

  • Enterprise JavaBeans (EJB) container: gère l'exécution d'enterprise beans pour les applications Java EE. Haricots d'entreprise et leurs le conteneur fonctionne sur le serveur Java EE.

  • conteneur Web: gère l'exécution de la page JSP et des composants servlet pour les applications Java EE. Composants Web et leurs

    le conteneur fonctionne sur le serveur Java EE.

  • client de l'Application conteneur: gère l'exécution des composants du client d'application. Les clients des applications et leurs le conteneur tourne sur le client.

  • Applet conteneur: Gère l'exécution des applets. Consiste en un navigateur web et un Plug-in Java tournant sur le client ensemble.

3
répondu Leopold Gault 2016-12-07 09:20:12

je pense que peut-être la différence entre eux sont les protocoles qui ils soutiennent。

par exemple, nous n'essayons pas de gérer la transaction dans un conteneur web.tandis que le serveur web / app comme ejb prend l'opposé

0
répondu spectator 2014-12-12 03:08:31

un conteneur Java EE est une solution de serveur d'application 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... Espérons qu'il répondra à votre requête

0
répondu arif khan 2017-09-29 08:50:22