JSR-303 ConstraintValidator中的依赖注入

时间:2013-06-13 09:28:29

标签: spring dependency-injection bean-validation customvalidator custom-validators

我有同样的问题,来自this线程的人有。 更准确地说,当我尝试在我的自定义验证器中注入一个实现CustomValidator接口的bean时,我得到以下错误(当访问我想要注入的bean时,它是一个NPE):

javax.validation.ValidationException: HV000028: Unexpected exception during isValid call.
at org.hibernate.validator.internal.engine.ConstraintTree.validateSingleConstraint(ConstraintTree.java:294)
at org.hibernate.validator.internal.engine.ConstraintTree.validateConstraints(ConstraintTree.java:164)
at org.hibernate.validator.internal.engine.ConstraintTree.validateConstraints(ConstraintTree.java:125)
at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:86)

...

引起:java.lang.NullPointerException

你有解决方案吗?也许是一个例子?因为我尝试了在另一个线程上提供的解决方案,但没有任何效果。

感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

如果要使用基于Spring的约束验证器,则不应自行创建验证器工厂(Validation.buildDefaultValidatorFactory())。

你应该让Spring自动装配正确的工厂到你的bean:

@Controller
public class MyController {

    @Autowired
    private ValidatorFactory validatorFactory;

    // ... handler methods

}