Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @NotNull注释未按预期工作_Java_Api_Rest_Http - Fatal编程技术网

Java @NotNull注释未按预期工作

Java @NotNull注释未按预期工作,java,api,rest,http,Java,Api,Rest,Http,我有一个端点实现,我在参数列表中将对象传递给它。我试图使用@NotNull注释验证此对象是否为null @POST @Path("path") public Response endpointMethod(@NotNull @ApiParam(value = "abc", required = true) Object object) { return Response.status(Status.OK).build(); } 如果对象被验证为非空,那么端点将只返回一

我有一个端点实现,我在参数列表中将对象传递给它。我试图使用@NotNull注释验证此对象是否为null

@POST 
@Path("path") 
public Response endpointMethod(@NotNull @ApiParam(value = "abc", required = true) Object object) { 
        return Response.status(Status.OK).build(); 
} 
如果对象被验证为非空,那么端点将只返回一个200OK响应。 但是,当我使用指定的路径向该端点发出请求,并且在主体中没有任何内容时,不会抛出任何错误。相反,我能够检索200响应(即使我在返回响应之前检查对象是否为null,也表明情况就是这样)


有人能指导我如何以正确的方式验证对象是否为null吗?

不确定@ApiParam(来自swagger?),但以下内容适用于Jersey 2.22:

@GET
@Path("/hz-test")
public Response proc(
            @NotNull @QueryParam("hz") String myvalue) {
我还怀疑您需要将@NotNull与其他Jersey参数注释(例如@QueryParam、@HeaderParam等)一起使用


顺便问一下,你用的是什么版本的球衣?(@NotNull仅在>2.x AFAIK中受支持)

如果您在类路径(org.glassfish.jersey.ext:jersey bean validation:2.22.2)上有bean验证依赖项,那么框架应该选择它,并进行开箱即用的工作


还要确保@NotNull注释来自javax.validation.constraints包

您使用的确切注释是什么?是来自
javax.validation.constraints
package的吗?@Cosu是的,就是这个包。谢谢!添加jersey bean验证依赖项解决了此问题。@CandleCoder您共享最小设置,但此设置不起作用?通过将
jersey bean验证
依赖项添加到我的pom.xml中,这对我很有效,然后在我的模型中使用
@NotNull
,并在
@POST
资源处理程序的方法参数上使用
@Valid
。对我来说效果不太好。但是谢谢你的帮助。