-
Bug
-
Resolution: Can't Do
-
Major
-
None
-
8.0.0.Final
-
None
I have a very simple bean and I am trying to inject the Validator using the @Inject annotation. But I am ending up getting a null when I try to use the Validator. I have the beans.xml defined to bean-discovery-mode="all". Below is the code
--------
import javax.inject.Inject;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import javax.validation.constraints.*;
import java.util.Map;
import java.util.Set;
public class SimpleCommand {
@Inject
private Validator validator;
@Email
private String email;
public SimpleCommand(){
}
public SimpleCommand(Map<String, String[]> params)
{ this.email = params.get("email")!=null ? params.get("email")[0] : null; } public void validate(){
//USING VALIDATOR THAT IS INJECTED IS NULL HERE
//USING THE BELOW METHOD WORKS
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator1 = factory.getValidator();
Set<ConstraintViolation<SimpleCommand>> contstraintViolations = validator1.validate(this); //USING INJECTED VALIDATOR WILL THROW NULL POINTER EXCEPTION
for (ConstraintViolation<SimpleCommand> violation : contstraintViolations)
}
}
--------
Then, from a JAX-RS controller, I call this validator
------
SimpleCommand cmd = new SimpleCommand(req.getParameterMap());
cmd.validate();