我有一个Hibernate 5项目,可以在Java 8上完美地构建和运行。我试图在JDK 9 ea build 171上测试它。 由于它是一个庞大的项目并且有其他依赖关系,我必须添加java.xml.bind
模块到JVM配置测试:JDK 9发生Hibernate 5问题
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<argLine>--add-modules java.xml.bind</argLine>
</configuration>
</plugin>
有,我可以解决,但如果使用的凝集模块java.se.ee(推荐)其他事项:
<argLine>--add-modules java.se.ee</argLine>
我得到了一个例外:
java.lang.NoClassDefFoundError: javax/transaction/SystemException
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:374)
at org.jboss.logging.Logger$1.run(Logger.java:2554)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at org.jboss.logging.Logger.getMessageLogger(Logger.java:2529)
我甚至不明白为什么会发生这种情况,因为JTA库(SystemException
类)在运行测试时位于类路径中。
有关如何解决此问题的任何建议?
JDK 9尚不稳定,并建立它是不保证。事实上,他们在JDK 9下自动构建并禁用了它,因为API尚未准备好,它只是在邮件中发送垃圾邮件。 – coladict