Java 9、Hibernate与java.sql/javax.transaction
Java 9, Hibernate and java.sql/javax.transaction
我已经尝试 "upgrade" 一个使用 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
for 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
,其中包含这个 class,我最终会遇到冲突:
module reads package javax.transaction.xa
from both java.sql
and javax.transaction.api
java.sql
和javax.transaction.api
包含不同的包,并且有一个共同点(javax.transaction.xa
),但我需要所有包。
我该如何处理?我缺少一些简单的东西吗?
使用版本 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>
我已经尝试 "upgrade" 一个使用 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.Alpha1org.hibernate:hibernate-core
, 5.2.12.Finaljavax.transaction:javax.transaction-api
, 1.2
问题是,如果我 运行 程序,我会得到一个 NoClassDefFoundError
for 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
,其中包含这个 class,我最终会遇到冲突:
module reads package
javax.transaction.xa
from bothjava.sql
andjavax.transaction.api
java.sql
和javax.transaction.api
包含不同的包,并且有一个共同点(javax.transaction.xa
),但我需要所有包。
我该如何处理?我缺少一些简单的东西吗?
使用版本 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>