Java 9 : jigsaw and hibernate 5. 2.12 不工作

标签 java hibernate jta java-9 java-platform-module-system

在我的 pom.xml 文件中,我只有一个依赖项:

<dependencies>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.2.12.Final</version>
    </dependency>
</dependencies>

还有一个module-info.java

module testmodule {
    requires hibernate.jpa;
    requires hibernate.core;
}

但是当我尝试运行我的应用程序时出现错误:Caused by: java.lang.IllegalArgumentException: jboss.transaction.api.1.2.spec: Invalid module name: '1' is not a Java 标识符。任何想法如何处理它?<​​/p>

最佳答案

从堆栈跟踪来看,异常不是针对 hibernate-core 模块,而是针对 jboss-transaction-api_1.2_spec 依赖项包含在您的项目中。

直到版本 1.0.1.Final 的依赖项,自动模块名称无法从 jar 文件名派生。

enter image description here

这已经在 2017 年 10 月发布的 2.0.0.Alpha1 版本中进行了更新,现在有一个 module-info.class 打包在 jar 中以从中获取模块名称。

因此,您最好使用模块名称为 java.transaction2.0.0.Alpha1 版本作为:

<dependency>
    <groupId>org.jboss.spec.javax.transaction</groupId>
    <artifactId>jboss-transaction-api_1.2_spec</artifactId>
    <version>2.0.0.Alpha1</version>
</dependency>

enter image description here

关于Java 9 : jigsaw and hibernate 5. 2.12 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47821744/

相关文章:

hibernate - 即使获取了子实体,如何在不重复的情况下检索实体?

java - Hibernate + EJB 中的容器管理事务 (CMT)

java - 并行运行长作业,并且仅在所有作业完成后更新 UI

java - Android Socket 客户端接收数据

java - 如何验证::after伪元素是否存在于selenium中

hibernate - 与不存在的 id 合并

java - 无法调试 Controller 错误

java - 在 JPA 中使用相同的实体键映射多个 HashMap

java - 在无状态 EJB 中的 JTA 环境中执行手动回滚

java - 使用 JTA 和 Glassfish Application Server 的 Hibernate JPA 似乎没有提交