Java EE Containers vs Web Containers


Sono relativamente nuovo a Java EE/EJB, e ho letto molto riguardo ai contenitori Java EE. Ho avuto esperienza di lavoro con un contenitore web (file WAR in jboss). Sono anche consapevole che Jboss può essere utilizzato anche come contenitore Java EE.

La mia domanda è: qual è la differenza tra un contenitore Java EE e un contenitore web?

So che Java EE è anche in grado di contenere un .file di guerra. Sono diversi e quali sono le loro differenze? Ci sono delle preferenze fornitore specifico-saggio che è meglio?

Author: Arjan Tijms, 2013-06-19

5 answers

Prima di tutto, "J2EE" è un'abbreviazione obsoleta, ora è semplicemente chiamata "Java Enterprise Edition" o Java EE.

Contrariamente al contenitore servlet (ad esempio Tomcat), i server di applicazioni Java EE "completi" contengono anche un contenitore EJB. EJB sono fagioli Java aziendali e puoi leggere molto su di loro ad esempio qui (capitolo IV). Gli EJB sono ora nella versione 3.2 (Java EE 7 e Java EE 8), le versioni precedenti sono 3.1 (Java EE 6) e 3.0 (Java EE 5); tuttavia la più grande differenza è tra v2 e v3.

EJB sono progettati per mantenere una logica di business dell'applicazione. Ad esempio, stateless session bean può calcolare qualcosa o rappresentare un servizio Web o qualsiasi altra cosa la tua applicazione debba fare. I bean basati sui messaggi possono ascoltare le code dei messaggi, quindi sono utili se si desidera una comunicazione asincrona. I fagioli Singleton garantiscono un'istanza per bean ecc.

Per quanto riguarda il tipo di file, EJB è confezionato in un .file jar, applicazione Web in un .file di guerra, e se si vuole mescolare in una singola applicazione, che sarebbe il .file ear ("archivio aziendale").

Accanto a EJBs, "full" application server si occupa anche di transazioni, sicurezza, risorse JDBC... Consiglio vivamente di usarlo su un contenitore servlet, ma i vantaggi derivano dalla complessità, quindi dovrai dedicare una ragionevole quantità di tempo a imparare come gestire ad esempio Websphere (Payara e WildFly sono molto più semplici e sono i miei preferito). JBoss e Weblogic sono anche molto popolari, e se hai familiarità con Tomcat dai un'occhiata a TomEE .

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

Java EE container: Gestisce l'esecuzione di EJB, JMS, JTA eseguito sul server Java EE ad esempio JBoss, Glassfish.

Contenitore Web: Gestisce l'esecuzione di pagine Web, servlet e alcuni componenti EJB per le applicazioni Java EE. I componenti Web e il loro contenitore vengono eseguiti sul server Web come Jetty, tomcat.

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

Il contenitore web e il contenitore EJB sono sottoinsiemi di contenitori Java EE. I contenitori Java EE comprendono anche il contenitore client dell'applicazione e contenitore applet .

Ecco cosa dice il doc:

Il processo di distribuzione installa i componenti dell'applicazione Java EE nel Contenitori Java EE.

  • Java EE server: la porzione di runtime di un prodotto Java EE. Un server Java EE fornisce EJB [contenitore e web contenitore]*.

  • Enterprise JavaBeans (EJB) container: gestisce l'esecuzione dei bean enterprise per le applicazioni Java EE. Fagioli aziendali e loro contenitore eseguito sul server Java EE.

  • Web container : Gestisce l'esecuzione dei componenti JSP page e servlet per le applicazioni Java EE. Componenti Web e loro
    contenitore eseguito sul server Java EE.

  • Contenitore client applicazione: Gestisce l'esecuzione dei componenti client dell'applicazione. Client applicativi e loro contenitore eseguito sul client.

  • Contenitore applet: Gestisce l'esecuzione delle applet. È costituito da un browser Web e Java Plug-in in esecuzione sul client insieme.

*Nel documento usano la forma pluriale, ma in realtà hai solo un contenitore Web e un contenitore EJB per Java EE server.

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

Penso che forse la differenza tra loro sono i protocolli che supportano。

Per esempio,non cerchiamo di gestire la transazione in un contenitore web,come tomcat, di solito cerchiamo di controllare nel web-proj che distribuito in tomcat。mentre web / app server come ejb prende il contrario。

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

Un contenitore java EE è una soluzione application server che supporta un contenitore web, EJB 3 e altre API e servizi Java EE, Oracle WebLogic server, GlassFish server, IBM WebSphere Application server, JBoss Application server e Caucho Resin sono esempi di contenitori Java EE... Spero che risponda alla tua query

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