jakarta-ee - Java EE 容器与 Web 容器

标签 jakarta-ee web ejb containers war

我对 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 Bean,您可以阅读很多有关它们的内容,例如 here (第四章)。 EJB 现在版本为 3.2(Java EE 7 和 Java EE 8),之前的版本为 3.1(Java EE 6)和 3.0(Java EE 5);然而最大的区别是 v2 和 v3 之间。

EJB 旨在保留应用程序的业务逻辑。例如,无状态 session Bean 可以计算某些内容,或代表 Web 服务或应用程序需要执行的任何操作。消息驱动 Bean 可以监听消息队列,因此如果您需要异步通信,它们非常有用。单例 bean 保证每个 bean 都有一个实例等。

关于文件类型,EJB 打包为 .jar 文件,Web 应用程序打包为 .war 文件,如果您想将它们混合在一个应用程序中,那就是 .ear 文件(“企业存档”) .

除了 EJB 之外,“完整”应用程序服务器还负责事务、安全性、JDBC 资源...我强烈建议在 servlet 容器上使用它,但好处伴随着复杂性,因此您将不得不花费合理的成本学习如何处理的时间Websphere ( PayaraWildFly 简单得多,也是我的最爱)。 JBossWeblogic也很受欢迎,如果您熟悉 Tomcat,请看一下 TomEE .

关于jakarta-ee - Java EE 容器与 Web 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17181292/

相关文章:

database - 存储要在网站上显示的大型预格式化文本的最佳方式?

java - 如何配置消息驱动 Bean 应用程序和 Glassfish 以使用来自远程 Message Broker 的消息?

java - 地址已在使用 : JVM_Bind

html - 动态缩小图像

java - 在 CDI 中生成可选 Bean

java - 使用 Tomcat 将 Java 应用程序连接到数据库

java - 有没有办法在遇到异常时强制事务回滚?

java - ManagedBean 中的 EJB 注入(inject)失败 (Websphere 8)

java - Tomcat中如何启用WebDAV相关方法

java - ActionScript 和 Java EE 中静态变量的区别