我正在为我的 REST 应用程序编写 E2E 测试。因此,位于前端的测试调用已部署的后端,除了一个小问题之外,这一切工作得很好:当调用readEntity接收到的方法时Response,java.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)