自定义Hibernate验证器无法在DropWizard应用程序中工作

时间:2017-04-19 03:47:58

标签: java dropwizard hibernate-validator

我正在尝试为自己的REST方法添加自定义验证器。问题是验证器未被调用。

我使用的是this SO question中接受的答案中提到的相同代码。我有CustomValidation批注,实现ConstraintValidator的CustomValidator类。唯一的区别是我的资源方法是带签名的POST:

@POST
public Result createObject(@Valid @CustomValidation MyObject myObject){
}

对我做错了什么的任何想法?感谢。

- 编辑 - 添加代码

CustomValidation

@Constraint(validatedBy = {CustomValidator.class})
@Target(ElementType.PARAMETER)
@Retention(value = RetentionPolicy.RUNTIME)
public @interface CustomValidation {


      String message() default "Invalid upload data";

      Class<?>[] groups() default {};
      Class<? extends Payload>[] payload() default {};
}

CustomValidator.java

public class CustomValidator implements ConstraintValidator<CustomValidation, MyObject> {

    @Override
    public void initialize(CustomValidation constraintAnnotation) {
         System.out.println("Initializing validator");
    }

    @Override
    public boolean isValid(MyObject value, ConstraintValidatorContext context) {    
        System.out.println("Validation called");    
        return false;
    }

}

休息资源:

@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class MyObjectService extends BaseRestService{

    @POST
    public Result createObject(@Valid @CustomValidation MyObject myObject){
    }

}

我已经验证了hibernate验证器jar是作为依赖项包含的。

0 个答案:

没有答案