升级到Java 8会导致unittest Java.io.IOException中的Orika mapper:无效常量类型:15 at 142
我有一个项目,我想将版本从Java1.7更新到Java1.8,但是运行UnitTests所有映射器测试都失败了 该项目正在使用: SpringJunitClassRunner升级到Java 8会导致unittest Java.io.IOException中的Orika mapper:无效常量类型:15 at 142,java,java-8,orika,Java,Java 8,Orika,我有一个项目,我想将版本从Java1.7更新到Java1.8,但是运行UnitTests所有映射器测试都失败了 该项目正在使用: SpringJunitClassRunner <dependency> <groupId>ma.glasnost.orika</groupId> <artifactId>orika-core</artifactId> <version>1.4.5</version&g
<dependency>
<groupId>ma.glasnost.orika</groupId>
<artifactId>orika-core</artifactId>
<version>1.4.5</version>
</dependency>
你的想法方向正确
java.lang.RuntimeException:java.io.IOException:无效常量类型:15 at 142
显示应用程序在Java8方面存在问题-如链接中所述
正如您在堆栈跟踪中看到的,ma.glasnost.orika映射器依赖于javassist。
这是orika的可传递依赖项
您可以使用mvn dependency:tree-verbose
构建依赖关系树。
在那里,您可以查找所依赖的库,例如javassist和确切的版本
要使用与Java 8兼容的javassist版本,请使用该依赖项覆盖orika的隐式依赖项:
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.18.2-GA</version>
</dependency>
org.javassist
javassist
3.18.2-GA
但是对于这个例子,最好将orika版本升级到1.4.6,因为这个版本已经支持Java 8。如果您没有对
javassist
的依赖,它就不会在您的类路径中。Spring间接地依赖于(传递的)。您发布的链接是正确的:您使用的是旧版本的javassist
,您需要更新到新版本,或者继续使用Java7。
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.18.2-GA</version>
</dependency>