我已经尝试升级"使用Hibernate到Java 9的项目,但是我在使模块正常运行时遇到了问题。
module-info.java
的相关部分如下所示:
module test {
...
requires java.base;
requires hibernate.core;
requires javax.transaction;
requires java.sql;
}
和我的POM中的相关依赖项是
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec
,2.0.0.Alpha1 org.hibernate:hibernate-core
,5.2.12.Final javax.transaction:javax.transaction-api
,1.2 问题是,如果我运行该程序,我会NoClassDefFoundError
获得javax.transaction.SystemException
。我调查了这一点,很显然,my module is missing a requires
on javax.transaction
。
所以我在javax.transaction-api
上添加了一个模块依赖项。然后我继续尝试再次运行该程序 - 现在我错过了java.sql.SQLException
。
以下是我遇到的问题:如果我add a dependency on the module java.sql
包含此类,我最终会发生冲突:
模块从
中读取包javax.transaction.xa
和java.sql
javax.transaction.api
java.sql
和javax.transaction.api
包含不同的套餐,并且有一个共同点(javax.transaction.xa
),,但我需要所有这些。
我该如何处理?我有什么简单的遗失吗?
答案 0 :(得分:3)
使用版本1.3而不是javax.transaction-api
的1.2,此版本javax.transaction.xa
已被删除。
Maven依赖:
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>javax.transaction-api</artifactId>
<version>1.3</version>
</dependency>