Wildfly/JBOSS 持久性错误 MSC000001:无法启动服务 jboss.persistenceunit

Posted

技术标签:

【中文标题】Wildfly/JBOSS 持久性错误 MSC000001:无法启动服务 jboss.persistenceunit【英文标题】:Wildfly/JBOSS persistence error MSC000001: Failed to start service jboss.persistenceunit 【发布时间】:2021-04-14 12:39:44 【问题描述】:

我们正在从 Wildfly 8(用于测试)和 9(用于部署)迁移到 21,Yay :)。不幸的是,我在尝试运行standalone.sh 脚本时收到此错误消息: 错误 [org.jboss.msc.service.fail] (ServerService 线程池 -- 78) MSC000001: 无法启动服务 jboss.persistenceunit."projectName.war#ertDatasource": org.jboss.msc.service.StartException in service jboss .persistenceunit."projectName.war#ertDatasource": java.lang.NoClassDefFoundError: javax/persistence/TableGenerators

根据我在网上收集的信息,这应该存在于我们正在使用的休眠持久性中:hibernate-jpa-2.1-api-1.0.0.Final。想知道我可能错过了什么吗?

在 pom.xml 中将 Hibernate 设置为依赖项:

    <dependency>
        <groupId>org.hibernate.common</groupId>
        <artifactId>hibernate-commons-annotations</artifactId>
        <version>4.0.4.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.3.7.Final</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-jpamodelgen</artifactId>
        <version>4.3.9.Final</version>
        <scope>compile</scope>
    </dependency>

当我们使用 wildfly 8 和 9 时,这些依赖项运行良好。想知道我在配置中可能遗漏了什么吗?

【问题讨论】:

【参考方案1】:

如果您查看 https://github.com/wildfly/wildfly/blob/21.0.2.Final/pom.xml 的 wildfly pom.xml,您会看到:

version.org.hibernate is 5.3.20.Final
version.org.hibernate.commons.annotations is 5.0.5.Final

我建议删除所有休眠依赖项并仅包含 API 规范:

<dependency>
    <groupId>jakarta.persistence</groupId>
    <artifactId>jakarta.persistence-api</artifactId>
    <scope>provided</scope>
</dependency>

wildfly 21.x使用的jpa版本是2.2.3。

【讨论】:

以上是关于Wildfly/JBOSS 持久性错误 MSC000001:无法启动服务 jboss.persistenceunit的主要内容,如果未能解决你的问题,请参考以下文章

JBoss EAP、Wildfly、JBoss web 和 JBoss 服务器有啥区别?

JBoss EAP,Wildfly,JBoss web和JBoss服务器有什么区别?

keycloak~jconsole监控wildfly和jboss

如何从 Wildfly (Jboss) 为 ws 端点访问 CXF jar

Infinispan/JDBC 作为 Wildfly/JBoss 上 Hibernate Search 的后端

wildFly(Jboss as)入门