我是EJB的新手。从我迄今为止所做的所有阅读和搜索中,我理解了以下内容:
1)我怀疑,所谓的EJB组件是否驻留在所有应用程序服务器中?
2)当我们说EJB 2.1 / 3.0 / 3.1时,是否意味着已经发布了新版本的EJB容器?
3) EJB容器是否也驻留在Web服务器中?
谢谢。
答案 0 :(得分:14)
您正确理解了EJB的想法。
是和否。取决于您所理解的“应用程序服务器”(在答案3中描述的含糊不清。)
当你说EJB 2.x / 3.0 / 3.1左右时,你指的是一个特定的EJB规范,这意味着你指的是一组服务这个版本支持。换句话说 - 是,这意味着EJB容器必须在给定的版本中 首先发布规范(您可以看到草稿版本,投票选择新功能并基本参与此过程)。然后,编写参考实现(RI)只是为了表明它是“可行的”,你可以立即使用它。然后,不同的供应商可能会提供自己的EJB容器,这些容器必须符合特定的EJB规范。
您需要注意几个不同的术语。可以肯定的是,我们谈论的是同样的事情:
如你所见,词汇量并不尖锐,因为有一点可能意味着几乎没有什么不同的东西。此外,由于Java EE 6我们有配置文件。这意味着您可以使Java EE Application Server符合Web配置文件或完整配置文件。在这种情况下,只应将Web配置文件服务器视为应用程序服务器。
就像摘要一样 - 您可以在Web容器中使用EJB容器。看看OpenEJB或基本上是项目 TomEE 。
答案 1 :(得分:10)
回答你的问题
一般是的。应用程序服务器通常被称为具有像EJBfish,Jboss等EJB容器的服务器。但是您需要确保应用程序服务器具有EJB支持。
是
NO。 Web服务器或Web容器(Tomcat,Jetty等)与EJB容器的用途不同。但是所有应用程序服务器都有Web服务器(以及EJB容器)。
EJB容器和Web容器(服务器)服务器是Java EE应用程序方案中的不同层。查看this链接了解详情。