在 JBoss 中,部署阶段的顺序如何?对象被实例化和可用的顺序是什么?考虑企业应用程序 (*.ear),检查所有部署日志(服务器.log),部署阶段如下所示:
问题:
独立.xml
或域.xml
中配置的,那么何时与数据库池建立第一次连接?当我注入 PersistenceContext 并使用 EntityManager 时?当一个. war模块被部署并准备好时,即使。ear尚未完成,可能从容器中启动了servlet或监听器。
我将尝试解决您的其余问题:
当找到persistence.xml
时,是否会启动与数据源的连接以及与DB池的连接?
是的,必须这样做(如果尚未建立连接),否则无法验证或创建表结构(DDL)。
因为数据源(DB)是在独立模式中配置的。xml或域。xml,何时第一次连接到数据库池?当我注入PersistenceContext并使用EntityManager时?
这个问题的答案是:视情况而定。如果您的JDBC数据源配置了最小池大小MIN_pool_size
EJB 池何时加载并可供使用?
在部署了EJB子模块及其所有依赖项之后,就可以使用它了。
说在 EJB jar 部署期间,JNDI 树被创建然后可用,这种说法是否正确?
我会用以下方式来表述:在检查(而不是在期间)可以部署所有EJB之后(例如,可以解决它们的所有依赖关系),然后创建JNDI条目(在JNDI树中)。根据我注意到的情况,如果单个 EJB 失败,则不会部署任何内容,这让我认为自己就在这里。
[部署.war模块时]如果其中一些对象(侦听器、servlet)尝试使用EJB或PersistenceContext
或其他对象,会发生什么情况?这些物品可用吗?
是的,当然。当部署WAR文件时,我们使用该功能从servlet执行一些初始化代码(例如,创建一些具有一些默认值的实体)。
是否有可能出现死锁问题并挂起部署线程/阶段?
从理论上讲,是的,实际上不是(我怀疑RedHat的人没有想到这一点)。
一些提示:如果您使用MySQL,您可以使用show Process list
检查与服务器的连接。否则,如果您使用Linux /Unix,您可以使用netstat
检查与数据库服务器的所有连接。
控制application.xml中罐子和战争的部署顺序
在保持云不可知的情况下创建一些通用组件来部署入口是否重要? 其他公司如何将它们的入口资源部署到k8s集群?
我是Java EE新手。我使用Eclipse、jBoss/WildFly和Maven。我有一个多模块Maven项目: 父Maven项目(pom) 目前,EJB项目打包在Web应用程序中,整个解决方案部署为一个文件。 我想更改它:我需要将war和jar项目独立地部署到应用服务器(作为两个独立的应用程序)。然后web项目可以通过远程接口访问EJB。 问题是: 我可以使用在Eclipse中部署项目 如何
我有一个关于JavaEE bean的问题。我已经用Spring和Hibernate开发了很长时间,现在我改用JavaEE-所以很抱歉,如果这是一个非常简单的问题,但目前我不知道如何处理我的问题。 我有两个bean,它们在JNDI中注册(在JBoss上--参见上面)。-到目前为止还可以。如果我在Servlet中使用@ejb作为依赖项注入,它工作得很好: 16:39:51,490信息[org.jbos
在忽略Java更新一段时间之后,我现在想从我在某处找到的有点阴暗的Java 10.0.2运行时转移到Java 13。事实证明,在Java 8之后,Oracle停止了“单片”JRE哲学,对于我关于如何进行部署的问题,我似乎找不到任何明确的答案。 以下是我认为保持不变的内容: IDE(eclipse)工作流基本保持不变 现在,我无法理解的棘手部分来了:在其他机器上的部署 创建一个module-info
我需要在weblogic server 10.3.6上部署非常旧的应用程序(10年-生病)。我有一个ear文件,其中包含几个带有EJB类的子部署jar(它们包含weblogic-EJB-jar.xml和EJB-jar.xml)。它通常部署在服务器上,我可以在weblogic中使用“查找”功能。 问题是,还有另一个没有ejb-jar.xml的jar(更旧)需要运行这个应用程序。例如,它有Object
为了设置群容器,我使用以下project-defaults.xml: pom的相关部分如下所示: 测试MDB非常简单: null 但是,基本原因是相同的(未找到依赖项)。我的解释是,maven插件在调用中添加了一个额外的层,该层记录额外的stacktrace,但问题仍然是一样的。