我有一个端点实现,我将一个对象传递给参数列表。我试图使用@NotNull注释验证此对象不为null。
@POST
@Path("path")
public Response endpointMethod(@NotNull @ApiParam(value = "abc", required = true) Object object) {
return Response.status(Status.OK).build();
}
如果验证对象不为null,则端点将返回200 OK响应。 但是,当我使用指定的路径向此端点发出请求时,并且正文中没有任何内容,则不会抛出任何错误。相反,我能够检索200响应(即使我在返回响应之前检查对象是否为null,它表明情况就是这样)。
有人可以指导我如何以正确的方式验证对象是否为空?
答案 0 :(得分:7)
如果你对类路径有bean验证依赖(org.glassfish.jersey.ext:jersey-bean-validation:2.22.2),它应该被框架选中并开箱即用。
还要确保您的@NotNull注释来自javax.validation.constraints包
答案 1 :(得分:1)
不确定@ApiParam(来自swagger?),但以下适用于Jersey 2.22:
@GET
@Path("/hz-test")
public Response proc(
@NotNull @QueryParam("hz") String myvalue) {
我还怀疑你需要将@NotNull与其他一个Jersey参数注释一起使用(例如@QueryParam,@ HeaderParam等)。
BTW,您使用的是什么版本的球衣? (仅在> 2.x AFAIK中支持@NotNull)