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

标签 deployment ejb jboss7.x jboss-eap-6

在 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/

    相关文章:

    eclipse - JBoss 无法从 Eclipse 启动

    sql-server - SQL SSAS - 部署错误

    ruby-on-rails - 根据部署类型更改 Rails 路由

    java - 我的无状态 session Bean 中不喜欢什么 Jersey?

    jboss7.x - 以编程方式将 jboss 重新启动为 7

    jsf-2 - JBoss AS7 - 无法处理部署的 POST_MODULE 阶段

    docker - 如何在Kubernetes中进行多容器部署

    azure - 如何处理 Azure Web 应用程序版本控制?

    serialization - EJB。当我使用 var List 调用 session Bean 时,抛出 : this javax. ejb.EJBException : java. rmi.MarshalException

    java - 系统日志 EJB Java EE