java – Resteasy Bean验证未被调用
|
问题背景 我有一个Resteasy服务,通过Resteasy的SpringContextLoaderListener使用Spring.这是基于Resteasy版本3.0-beta-6. 我想对传入的请求使用bean验证,但我无法让Resteasy调用验证器.它的作用就像没有配置验证,只是将方法传递给无效的输入对象. 题 >如何在Resteasy中启用bean验证? 我试过的 我做了以下事情: >使用@ValidateRequest注释我的资源类 资源: @Named
@Path("users")
@ValidateRequest
public class UserResource
{
/**
*
* @param user
*
* curl -x POST http://localhost:7016/api/1.0/users
*
*/
@POST
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public Response createUser(@Valid User user)
{
//User creation logic here.
}
}
用户POJO: @JsonPropertyOrder({
"user_id","user_name","email"
})
public class User
{
@JsonProperty("user_id")
private Long userId;
@JsonProperty("user_name")
@NotNull(message = "Username must be provided")
private String username;
@Email(message = "Invalid email address.")
private String email;
//Getters and Setters Removed for Brevity
}
POM条目验证: <dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-hibernatevalidator-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
resteasy-hibernatevalidator-provider依赖项引入了HibernateValidatorContextResolver及其关联的HibernateValidatorAdapter. 更新(2013年6月18日): 我将我的pom中的Resteasy版本恢复为2.3.5.Final和bean验证开始工作而没有任何代码更改. 解决方法你做到了这个:向RESTEasy提供ValidatorAdapter RESTEasy将尝试通过类路径中的ContextResolver提供程序获取ValidatorAdapter的实现.我们可以为RESTEasy提供如下实现: @Provider
public class MyValidatorContextResolver implements ContextResolver<ValidatorAdapter> {
@Override
public ValidatorAdapter getContext(Class<?> type) {
return new MyValidator();
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
