Java 9,Hibernate和java.sql / javax.transaction [英] Java 9, Hibernate and java.sql/javax.transaction

查看:222
本文介绍了Java 9,Hibernate和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而不是 1.2的javax.transaction- api ,在此版本中 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.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

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 both java.sql and javax.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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆