我有一个完美构建并运行在Java 8上的Hibernate 5项目.我尝试在JDK 9 ea build 171上测试它.由于它是一个庞大的项目并且有其他依赖项,我不得不将java.xml.bind模块添加到JVM配置中进行测试:
<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>
Run Code Online (Sandbox Code Playgroud)
还有其他问题我可以解决,但如果使用聚合模块java.se.ee(如推荐):
<argLine>--add-modules java.se.ee</argLine>
Run Code Online (Sandbox Code Playgroud)
我有一个例外:
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)
Run Code Online (Sandbox Code Playgroud)
我甚至无法理解为什么会发生这种情况,因为JTA库(带有SystemException类)在测试运行时位于类路径中.
对于如何解决这个问题,有任何的建议吗?