小编Dig*_*ity的帖子

使用自定义验证组的自定义约束注释导致 E2E 测试中的 java.lang.ArrayStoreException

我正在为我的 REST 应用程序编写 E2E 测试。因此,位于前端的测试调用已部署的后端,除了一个小问题之外,这一切工作得很好:当调用readEntity接收到的方法时Responsejava.lang.ArrayStoreException会发生一个。我的观察表明问题出在自己编写的约束注释中:

@Future我已经为 Bean 验证编写了自己的约束注释,我的 POJO 使用此注释来验证 aLocalDateTime是否在将来。我还提供了两个简单的接口,用作验证组:

public interface ExistingInstance extends Default {

}
Run Code Online (Sandbox Code Playgroud)

public interface NewInstance extends Default {

}
Run Code Online (Sandbox Code Playgroud)

当我在自定义约束注释中使用这些接口之一作为验证组时,如下所示:

public class Book {

   @Future(groups=NewInstance.class)
   private LocalDateTime validFrom;

   private LocalDateTime validTo;

   // Getters & Setters...
}
Run Code Online (Sandbox Code Playgroud)

我收到此异常:

java.lang.ArrayStoreException
    at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:736)
    at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:543)
    at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:367)
    at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:298)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:132)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:84)
    at java.lang.reflect.AccessibleObject.getAnnotationsFromCache(AccessibleObject.java:313)
    at java.lang.reflect.Field.declaredAnnotations(Field.java:1167)
    at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1160)
    at com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollector._findFields(AnnotatedFieldCollector.java:86)
    at com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollector._findFields(AnnotatedFieldCollector.java:71)
    at com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollector.collect(AnnotatedFieldCollector.java:48)
    at com.fasterxml.jackson.databind.introspect.AnnotatedFieldCollector.collectFields(AnnotatedFieldCollector.java:43) …
Run Code Online (Sandbox Code Playgroud)

java reflection jackson bean-validation jersey-2.0

2
推荐指数
1
解决办法
415
查看次数

标签 统计

bean-validation ×1

jackson ×1

java ×1

jersey-2.0 ×1

reflection ×1