Java EE容器与Web容器
我对Java EE / EJB相对来说比较陌生,对于Java EE容器我一直在阅读很多。 我有使用Web容器(jboss中的WAR文件)的经验。 我也知道Jboss也可以用作Java EE容器。
我的问题是,Java EE容器对Web容器有什么区别?
我知道Java EE也能够包含一个.war文件。 他们是不同的,他们有什么不同? 有什么偏好供应商具体明智哪个更好?
首先,“J2EE”是一个过时的缩写,现在简称为“Java Enterprise Edition”或Java EE。
与servlet容器(例如Tomcat)相反,“完整的”Java EE应用程序服务器也包含一个EJB容器。 EJB是Enterprise Java Beans,你可以在这里阅读很多关于它们的内容(第四章)。 EJB现在在3.2版本(Java EE 7)中,以前的版本是3.1(Java EE 6)和3.0(Java EE 5); 但是最大的区别在于v2和v3之间。
EJB是为了保持应用程序的业务逻辑而devise的。 例如,无状态会话bean可以计算一些东西,或者代表一个Web服务或者你的应用程序需要做的事情。 消息驱动的bean可以监听消息队列,因此如果你想要asynchronous通信,它们很有用。 单例bean保证每个bean有一个实例
关于文件types,EJB被打包成一个.jar文件,Web应用程序打包成一个.war文件,如果你想把它们混合在一个应用程序中,那就是.ear文件(“企业档案”)。
在EJB旁边,“完整的”应用程序服务器也关心事务,安全性和JDBC资源。我强烈推荐在servlet容器上使用它,但是这样做的好处是复杂性,所以你将需要花费合理的时间学习如何处理如Websphere ( Payara和WildFly简单得多,是我最喜欢的)。 JBoss和Weblogic也相当stream行,如果你熟悉Tomcat,请看看TomEE 。
Java EE容器:pipe理在Java EE服务器上运行的EJB,JMS,JTA的执行,例如JBoss,Glassfish。
Web容器:pipe理用于Java EE应用程序的网页,servlet和一些EJB组件的执行。 Web组件及其容器在Web服务器(如Jetty,tomcat)上运行。
Web容器和EJB容器是Java EE容器的子集。 Java EE容器也包含应用程序客户端容器和小 应用 程序容器 。
以下是该文档所说的内容:
部署过程将Java EE应用程序组件安装在Java EE容器中。
Java EE服务器 :Java EE产品的运行时部分。 Java EE服务器提供EJB [容器和Web容器] *。
Enterprise JavaBeans(EJB)容器 :pipe理Java EE应用程序的企业bean的执行。 企业bean及其容器在Java EE服务器上运行。
Web容器 :pipe理Java EE应用程序的JSP页面和servlet组件的执行。 Web组件及其
容器在Java EE服务器上运行。应用程序客户机容器 :pipe理应用程序客户机组件的执行。 应用程序客户端及其容器在客户端上运行。
小程序容器 :pipe理小程序的执行。 由客户端上运行的Web浏览器和Java Plug-in组成。
*在文档中,他们使用多种forms,但实际上,每个Java EE服务器只有一个Web容器和一个EJB容器。
我想也许他们之间的区别是他们支持的协议。
例如,我们不试图在tomcat等Web容器中pipe理事务,我们通常试图控制tomcat中部署的web-proj,而像ejb这样的web / app服务器则相反。
Java EE容器是支持Web容器,EJB 3和其他Java EE API和服务的应用服务器解决scheme,Oracle WebLogic服务器,GlassFish服务器,IBM WebSphere应用服务器,JBoss应用服务器和Caucho Resin是Java EE容器的示例。希望它会回答你的查询