使用hibernate验证器5.x + EJB自动验证方法

时间:2014-03-19 15:04:53

标签: cdi ejb-3.1 hibernate-validator

我有以下环境:

  • Glassfish 4
  • hibernate-validator-5.0.1.Final.jar(in ear)

现在我尝试实现方法参数的自动验证:

@Local
@ValidateOnExecution(type = ExecutableType.ALL)
public interface SomeServiceLocal {

   String someMethod(@Size(max = 1) String value);

}

执行:

@Stateless
public class OtherBean implements OtherBeanLocal {

  @Inject
  private SomeServiceLocal someService;

     @Override
     public String otherMethod() {
       return someService.someMethod("abc");
     }

  }

}

我认为调用someMethod会导致验证错误。为什么不工作?

2 个答案:

答案 0 :(得分:0)

从您的EAR文件中删除hibernate验证程序。当你以这种方式嵌入它时,自动注册将无法正常工作。你需要使用他们的CDI扩展来注册它。

答案 1 :(得分:0)

我自己解决了问题。有必要在bean实现的类级别添加@ValidateOnExecution - SomeServiceBean