Custom validator is being called multiple times

Viewed 78

I have created a custom bean validator annotation

@Documented
@Constraint(validatedBy = TestValidator.class)
@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)

public @interface ValidTest {
    String message() default "org.cdot.validations.ValidTest";

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

And its corresponding validator class

public class TestValidator implements ConstraintValidator<ValidTest, String> {

    @Override
    public void initialize(ValidTest annot) {
    }

    @Override
    public boolean isValid(String param, ConstraintValidatorContext ctx) {
         System.out.println("[isValid] param : " + param);
         return param != null && param.trim().length() > 0;
    }
}

In my Bean I have a test method

@POST
@Path("validtest")
@Produces(MediaType.TEXT_PLAIN)
public String testMethod(@ValidTest String param) {
    System.out.println("[testMethod] param : " + param);
    return "";
}

The issue is that when the EAR is deployed in Wildfly, and the API is called with parameter, isValid is being called three times. Whereas if the API is called with not parameter, the method is being called only once.

Can someone please help me on this? Thanks

0 Answers
Related