【发布时间】:2015-09-06 12:51:24
【问题描述】:
我使用 Resteasy-Guice 将 Resteasy 与 Google Guice 结合使用。我一直在寻找验证我的请求正文的方法。我想做的例子:
public static class MyPojo {
@NotEmpty private String contents;
}
然后在我的资源中使用
@POST
@ValidateRequest
public void doPost(@Valid MyPojo myPojo) {
// use myPojo only if valid
}
我一直在使用 resteasy-hibernate-validator-provider。但是由于我切换到较新的版本,这引入了(不需要的?)对 EJB 的依赖。另请参阅:RESTEASY-1056。在 cmets 中声明您应该改用较新的 validator-11:
切换到 resteasy-validator-provider-11,它实现了更新的 Bean Validation 1.1 规范。
docs 说:
默认开启验证(假设 resteasy-validator-provider-11-.jar 可用),但参数和返回值验证可以在validation.xml 配置文件中关闭或修改。有关详细信息,请参阅 Hibernate 验证器文档。
然而,我并没有设法让这个工作适应我的配置,因为我发现自己包括像 hibernate-validator、javax.el-api、javax.el 和 hibernate-validator-cdi 这样的依赖项以及像 ValidateOnExecution 这样的注释。但是,我没有发现其中任何一个被实例化或无效请求被拒绝。
使用 Resteasy 进行验证的首选、轻量级和可行的方法是什么?
【问题讨论】:
标签: java jboss jax-rs resteasy hibernate-validator