Jakarta ee 哪个JavaEE容器包含哪些元素?

Jakarta ee 哪个JavaEE容器包含哪些元素?,jakarta-ee,Jakarta Ee,我试图对JavaEE容器有更深入的了解。我需要了解项目的体系结构(没关系),尤其是对JavaEE容器的影响。为了简单起见,所有东西都运行在同一个完整的JavaEEGlassFish服务器上 我有一些类定义: (很抱歉,由于声誉问题,我无法发布UML图) 和JSF页面: myEntityPageJSF.xhtml 现在我想对以下容器中的不同元素进行分类,如下所示: EJB容器: MyEntity,因为它是一个实体Bean MyEntityDAO,因为它是会话Bean MyEntityFacade

我试图对JavaEE容器有更深入的了解。我需要了解项目的体系结构(没关系),尤其是对JavaEE容器的影响。为了简单起见,所有东西都运行在同一个完整的JavaEEGlassFish服务器上

我有一些类定义: (很抱歉,由于声誉问题,我无法发布UML图)

和JSF页面: myEntityPageJSF.xhtml

现在我想对以下容器中的不同元素进行分类,如下所示:

EJB容器

  • MyEntity,因为它是一个实体Bean
  • MyEntityDAO,因为它是会话Bean
  • MyEntityFacade,因为它是会话Bean
Web容器

  • MyEntityPageController,因为它是CDIBean
  • JSF页面
  • 小仆
我找到的唯一官方答案是[1]:

企业JavaBeans(EJB)容器:管理JavaEE应用程序的企业bean的执行。企业bean及其容器在JavaEE服务器上运行

Web容器:管理Java EE应用程序的Web页面、servlet和一些EJB组件的执行。Web组件及其容器在JavaEE服务器上运行

问题在于“和一些EJB组件”部分。。。不知道他们到底在说什么。那么,有人能在正确的容器中对以下元素[2]进行分类吗

  • 会话Bean
  • 实体Bean
  • 消息Bean
  • JSF
  • 塞维莱特
  • 所以这并不难,但现在:
  • 豆角
  • 菜豆
  • WebService(可能它也是一个会话Bean,我不知道)
提前谢谢

参考资料:


  • 托管Bean是JSF的一部分,但JSF并没有定义一个单独的容器——它的支持Bean是标准的JavaEE Bean(请看一看)。请记住,现在建议使用CDI管理的bean而不是“JSFbean”

    CDIBean由CDI容器()管理

    网络服务。。。这取决于它是如何定义的。当一个服务同时使用@WebService和@Stateless注释进行注释时,它将由EJB容器进行管理。当使用CDI范围注释对其进行注释时,它将由CDI容器进行管理。但它也可以存在于任何JavaEE容器之外,因为它与JavaSE规范相关。

    它是关于容器、组件和服务的。 JavaEE应用程序容器 JavaEE应用服务器只包含两种容器类型(web和EJB容器)。这些容器有一些组件,这些组件使用容器本身提供的一些API

    您的应用程序服务器可以解释为应用程序容器。仅举几个例子:Tomcat、JBoss/Wildfly、OracleWebLogic、Jetty或GlassFish都是JavaEE应用程序容器

    此时,您已经注意到服务器通常是容器的同义词。它存在于这样一个事实中:对于小型应用程序,每个服务器通常有一个容器。但是,服务器可以由多个容器组成

    严格来说,Java应用服务器基于Java平台企业版,这是一种多层分布式模型。该模型由以下部分组成:

    • 客户端层(可以是一个或多个应用程序或浏览器)
    • 中间层(Web容器和EJB容器)
    • EIS层(数据库、集成服务、资源等)
    在JavaEE世界中,多层体系结构意味着一些容器位于客户端,而另一些位于服务器端

    JavaEE容器类型 从服务器的角度来看,JCP(Java社区进程)在JSR342中只定义了四种类型的Java EE容器:

    • 小程序容器(在客户端浏览器中运行)
    • 应用程序客户端容器(在客户端计算机上运行)
    • Web容器(有时称为Web服务器,在JEE应用服务器上运行)
    • EJB容器(有时称为EJB服务器,在JEE应用服务器上运行)

    JavaEE容器是组件和JavaEE平台提供的支持该组件的低级功能之间的接口

    容器为JavaEE应用程序提供运行时支持 组件。容器提供底层Java的联合视图 应用程序组件的EE API。JavaEE应用程序组件 不要直接与其他JavaEE应用程序组件交互。 [...] 一个典型的javaee产品将为每个应用程序提供一个容器 应用程序组件类型:应用程序客户端容器、小程序 容器、web组件容器和企业bean容器

    Web容器作为EJB容器,为其组件提供命名上下文和生命周期管理。 注意,即使Web容器可以与EJB容器一起工作,它们也不需要部署在同一台机器上

    完全一致的JEE应用服务器,如Websphere、Glassfish或JBoss,具有这两个容器

    JavaEE核心组件 JEE应用程序由组件组成。组件是一个自包含的功能软件单元,它与相关的类和文件组装成一个JEE应用程序,并与其他组件进行通信

    从技术上讲,容器为组件提供了主机执行环境

    说明书上说:

    • 应用程序客户端容器有一个名为应用程序客户端(独立或小程序)的组件
    • Web容器有一个Servlet组件或JavaServerPages(JSP)组件
    • EJB容器具有EJB组件。EJB容器由平台供应商提供
    来自不同容器的组件之间的通信示例: 这个
    @Entity public class MyEntity{...}
    @Stateless public class MyEntityDAO{...}
    @Stateless public class MyEntityFacade{...}
    public class MyEntityTO{...} //Data Transfer Object, it's a POJO
    @Named @ViewScoped public class MyEntityPageController{...}