java - 启动 Wildfly 11 App Server 时出错 - 名为 null 的持久性单元

标签 java jpa ejb wildfly

我正在使用 Eclipse 和 Wildfly 11 开发基于 Maven 的 JSF+JPA+EJB 3.2 项目。 启动 App Server 时出现以下错误:

    20:37:27,664 INFO  [org.jboss.weld.deployer] (MSC service thread 1-4) WFLYWELD0003: Processing weld deployment erpmini.war

20:37:28,116 INFO  [org.hibernate.validator.internal.util.Version] (MSC service thread 1-4) HV000001: Hibernate Validator 5.3.5.Final

20:37:28,552 INFO  [org.jboss.as.ejb3.deployment] (MSC service thread 1-4) WFLYEJB0473: JNDI bindings for session bean named 'UserManagementServiceSlsb' in deployment unit 'deployment "erpmini.war"' are as follows:


java:global/erpmini/UserManagementServiceSlsb!com.itsys.erp.server.commonservices.usermgmt.UserManagementService

java:app/erpmini/UserManagementServiceSlsb!com.itsys.erp.server.commonservices.usermgmt.UserManagementService

java:module/UserManagementServiceSlsb!com.itsys.erp.server.commonservices.usermgmt.UserManagementService

java:jboss/exported/erpmini/UserManagementServiceSlsb!com.itsys.erp.server.commonservices.usermgmt.UserManagementService

java:global/erpmini/UserManagementServiceSlsb

java:app/erpmini/UserManagementServiceSlsb

java:module/UserManagementServiceSlsb

20:37:29,879 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC000001: Failed to start service jboss.deployment.unit."erpmini.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."erpmini.war".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment "erpmini.war"

at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:172)

at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2032)

at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1955)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)

Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEE0041: Component class com.itsys.erp.server.commonservices.usermgmt.slsbadapter.UserManagementServiceSlsb for component UserManagementServiceSlsb has errors:

WFLYJPA0033: Can't find a persistence unit named null in deployment "erpmini.war"

at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor$1.handle(ModuleJndiBindingProcessor.java:157)

at org.jboss.as.ee.component.ClassDescriptionTraversal.run(ClassDescriptionTraversal.java:54)

at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.processClassConfigurations(ModuleJndiBindingProcessor.java:186)

at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.deploy(ModuleJndiBindingProcessor.java:143)

at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:165)

... 5 more

20:37:30,098 INFO  [org.infinispan.factories.GlobalComponentRegistry] (MSC service thread 1-2) ISPN000128: Infinispan version: Infinispan 'Chakra' 8.2.8.Final

20:37:31,825 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 63) WFLYCLINF0002: Started client-mappings cache from ejb container

20:37:32,131 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "erpmini.war")]) - failure description: {

    "WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"erpmini.war\".INSTALL" => "WFLYSRV0153: Failed to process phase INSTALL of deployment \"erpmini.war\"

    Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEE0041: Component class com.itsys.erp.server.commonservices.usermgmt.slsbadapter.UserManagementServiceSlsb for component UserManagementServiceSlsb has errors:

WFLYJPA0033: Can't find a persistence unit named null in deployment \"erpmini.war\""},

    "WFLYCTL0412: Required services that are not installed:" => ["jboss.deployment.unit.\"erpmini.war\".beanmanager"],

    "WFLYCTL0180: Services with missing/unavailable dependencies" => [

    "jboss.deployment.unit.\"erpmini.war\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"erpmini.war\".beanmanager]",

    "jboss.deployment.unit.\"erpmini.war\".batch.artifact.factory is missing [jboss.deployment.unit.\"erpmini.war\".beanmanager]"

    ]

}

我在无状态 bean 中注入(inject) EntityManager:

@Stateless
public class UserManagementServiceSlsb implements UserManagementService {

     /** The Entity Manager */
     @PersistenceContext(name = "TELCOAppPU")
     private EntityManager entityManager;

     private UserManagementService userMgmtService;
 ....
}

为什么 Container 找不到 persistence.xml 文件? persistence.xml 存在于 META-INF 目录中。任何帮助,将不胜感激。 谢谢。
更新 : 这是项目目录结构,persistence.xml 存在于 META-INF 目录中。

Project dir structure

persistence.xml 包含实体类和 MySql 数据库连接详细信息。

<persistence-unit name="TELCOAppPU">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    <class>com.itsys.erp.server.dal.entities.City</class>
    <class>com.itsys.erp.server.dal.entities.Machine</class>
    <class>com.itsys.erp.server.dal.entities.Product</class>
    <class>com.itsys.erp.server.dal.entities.ProductType</class>
    <class>com.itsys.erp.server.dal.entities.ProductionLog</class>
    ...
    <properties>
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/erpdb" />
        <property name="javax.persistence.jdbc.user" value="root" />
        <property name="javax.persistence.jdbc.password" value="root" />
        <property name="hibernate.show_sql" value="true" />
    </properties>
</persistence-unit>

最佳答案

通过将 resources 文件夹(作为源文件夹)添加到路径 src/main/resources 并移动 META-INF 文件夹来解决它到 resources 文件夹,这反过来告诉 maven 将所有文件放在 resources 目录下到 target/classesWEB-INF/WAR 中的类

关于java - 启动 Wildfly 11 App Server 时出错 - 名为 null 的持久性单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54202962/

相关文章:

jakarta-ee - 如何确保 EJB 计时器在 Java EE 集群环境中仅创建一次?

java - jparepository 错误创建 entitymanagerfactory

java - EJB 与 JPA Controller ?

java - 在我的几乎所有脚本中使用相同的自定义方法

java - 具有元素 null 的 java 数组的长度是否为 1?

java - Hibernate 应该只更新数据库中的某些字段

java - 内存泄漏 Spring Boot

java - JVM/AS 监控工具

java - 将列表对象作为参数发送到jsp端

java - Project Euler #5(可被 1 到 20 的所有数字整除的最小正数): Ways to Optimize? ~Java