gpt4 book ai didi

deployment - JBoss EAP 6.x 了解部署阶段 - ResourceAdapters、EJB、jar、war

转载 作者:行者123 更新时间:2023-12-03 14:18:57 24 4
gpt4 key购买 nike

在 JBoss 中,部署阶段的顺序是怎样的?对象被实例化和可用的顺序是什么?
考虑一个企业应用程序 (*.ear),检查所有部署日志 (server.log),部署阶段如下所示:

  • 全部 已部署 - .class 文件已加载且可用;
  • 全部 *.jar 模块已部署 - .class 文件已加载并可用;
  • 如果一些 *.jar EJB jar ,通过配置文件(例如ejb-jar.xml)或者注解,创建JNDI树;
  • 如果一些 *.jar 有一个 persistence.xml 文件配置,所有实体和数据源链接都被加载;
  • 全部 *.war 模块开始部署阶段;
  • 通过配置文件(web.xml),监听器和上下文根被加载,并最终加载安全方面。
  • 耳朵 部署成功。

  • 问题:
  • 资源适配器模块、PersistenceContext 和 EJB 池呢?
  • 找到persistence.xml 后,是否会启动与数据源的连接以及与数据库池的连接?
  • 由于数据源 (DB) 在 standalone.xml 中配置或 domain.xml ,第一次连接到数据库池的时间是什么时候?当我注入(inject) PersistenceContext 并使用 EntityManager 时?
  • EJB 池何时加载并可供使用?
  • 说在 EJB jar 部署期间创建 JNDI 树然后可用是正确的吗?
  • 当发现 EJB 时,它会被加载到池中(作为注入(inject)/查找的引用)?

  • 当 .war 模块部署并准备就绪时,即使 .ear 的完整部署尚未完成,也可能从容器启动 servlet 或 listener。
  • 如果其中一些对象(监听器、servlet)尝试使用 EJB 或 PersistenceContext 或其他对象,会发生什么情况?这些对象可用吗?
  • 是否可能出现死锁问题并挂起部署线程/阶段?
  • 最佳答案

  • 可以control the deployment order使用 <initialize-in-order>true</initialize-in-order> 在 application.xml 中的 jars 和 war
  • lifecycle of the resource adaptersconnector architecture 控制
  • lifecycle of Container-Managed Entity Managers由 JBoss 管理。假设您使用 @PersistenceContext 注入(inject) EJB ,这发生在 @PostConstruct 之前.
  • 可以使用 @DependsOn("OtherBean") 定义单例 EJB 初始化顺序
  • 您可以使用第一个项目符号
  • 中的部署顺序确保 EJB 端点可用
  • 不确定是否可能死锁 - 您更有可能看到 JNDI 异常
  • 关于deployment - JBoss EAP 6.x 了解部署阶段 - ResourceAdapters、EJB、jar、war,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31220237/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com