Java 9,Hibernate和java.sql / javax.transaction [英] Java 9, Hibernate and java.sql/javax.transaction
问题描述
相关的部分是我的 module-info.java
看起来像这样:
module test {
...
需要java.base;
需要hibernate.core;
需要java.naming;
}
以及我的POM中的相关依赖项
-
javax.xml.bind:jaxb-api
,2.3.0 -
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
问题是,如果我运行该程序, code> NoClassDefFoundError 用于 javax / transaction / SystemException
。我研究了这一点,很明显,我的模块缺少一个需要
on javax.transaction
。
javax.transaction的-API
。然后我继续尝试再次运行程序 - 现在我缺少 java / sql / SQLException
。 这是我有一个问题:如果我在包含这个类的模块 java.sql
上添加一个依赖项,结束冲突:
模块从
java.sql中读取包
和javax.transaction.xa
javax.transaction.api
java.sql
和 javax.transaction.api
包含不同的包,并且有一个共同之处( javax。 transaction.xa
),但我需要所有人。
我该如何处理?有没有简单的我缺少的?
使用版本1.3而不是 javax.transaction.xa
已被删除。
Maven依赖关系:
<依赖关系>
< groupId> javax.transaction< / groupId>
< artifactId> javax.transaction-api< / artifactId>
< version> 1.3< / version>
< /依赖关系>
I've tried to "upgrade" a project using Hibernate to Java 9, but I am having problems getting the module to function properly.
The relevant part of my module-info.java
looks like this:
module test {
...
requires java.base;
requires hibernate.core;
requires java.naming;
}
and the relevant dependencies in my POM are
javax.xml.bind:jaxb-api
, 2.3.0org.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
The problem is, if I run the program, I get a NoClassDefFoundError
for javax/transaction/SystemException
. I looked into this, and quite obviously, my module is missing a requires
on javax.transaction
.
So I add a module dependency on javax.transaction-api
. I then go on and attempt to run the program again - now I'm missing java/sql/SQLException
.
Here is what I am having a problem with: if I add a dependency on the module java.sql
, which contains this class, I end up with a conflict:
module reads package
javax.transaction.xa
from bothjava.sql
andjavax.transaction.api
java.sql
and javax.transaction.api
contain different packages, and have one in common (javax.transaction.xa
), but I require all of them.
How do I deal with this? Is there something simple I am missing?
Use version 1.3 instead of 1.2 of javax.transaction-api
, in this version javax.transaction.xa
has been removed.
Maven dependency:
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>javax.transaction-api</artifactId>
<version>1.3</version>
</dependency>
这篇关于Java 9,Hibernate和java.sql / javax.transaction的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!