使用spring-boot-start -test 1.4快照从@JsonTest注释中获取异常



我试图在spring-boot-start -test 1.4中使用新的@JsonTest注释,我得到了一个奇怪的错误。看起来@JsonTest注释依赖于没有添加到类路径中的类。这是我的测试……

@RunWith(SpringJUnit4ClassRunner.class)
@JsonTest
public class JsonSerializationTest {
...
}

错误如下:

java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:724)
at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:531)
at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:355)
at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:286)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72)
at java.lang.Class.createAnnotationData(Class.java:3521)
at java.lang.Class.annotationData(Class.java:3510)
at java.lang.Class.getAnnotation(Class.java:3415)

如果我删除@JsonTest注释,我会得到这个错误,因为没有设置ApplicationContext:

Caused by: java.lang.IllegalArgumentException: Cannot load an ApplicationContext with a NULL 'contextLoader'.

谁知道什么类@JsonTest是试图加载,春启动不包括在依赖关系?

这两个丢失的类是Spring Boot 1.4中新增的,所以看起来在类路径上有多个版本。您需要更新您的pom或构建。Gradle以确保版本是一致的。要做到这一点,最简单的方法是删除任何版本声明,并允许Spring Boot的依赖管理为您处理它。

最新更新