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

Wildfly/JBOSS persistence error MSC000001: Failed to start service jboss.persistenceunit

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

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

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

    <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 时,这些依赖项工作正常。想知道我在配置中可能遗漏了什么吗?

如果你在 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使用的jpa版本21.x是2.2.3.