如何解决@Valid注释在JAX-RS @POST资源的参数中不起作用
因此,我有一个JAX-RS资源,该资源使用@Valid批注来验证请求主体映射到的实体类,如文档所指定的那样
@Path("/test")
public class Test {
@POST
@Consumes("application/json")
@Produces("application/json")
public Response processPostRequest(@Valid TestRequest testRequest) {
...
return Response.accepted(testRequest.getOutputs()).build();
}
}
实体类定义如下
public class testRequest {
private String id;
@NotEmpty
private Map<String,Integer> outputs;
....getters,setters...
}
但是我是否发送不带输出字段的json
{
"id": "abc00def"
}
或带有但空的
{
"id": "abc00def"
"outputs": {}
}
验证不会发生,不会引发异常,并且会根据return语句发送202响应。 使用的应用程序服务器是WildFly20,并且bean验证处于活动状态。
中有相关说明。WildFly应用程序服务器开箱即可包含Hibernate Validator。为了将Jakarta Bean验证API和Hibernate Validator的服务器模块更新到最新和最大的版本,可以使用WildFly的补丁机制。
补丁可用于WildFly 19及更早版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。