我正在尝试使用javax.validation.validation-api来验证@QueryParam
参数。我按照以下步骤操作:
添加了依赖项:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-bean-validation</artifactId>
<version>2.12</version>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
</exclusion>
</exclusions>
</dependency>
泽西岛资源:
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/{param1}")
@ValidateOnExecution
public SomeObject get(@PathParam("param1") String param1,
@NotNull @QueryParam("q1") String q1,
@NotNull @QueryParam("q2") String q2) {
try {
//Assuming q1 and q2 are NOT Null here
...
} catch(Exception exception) {
throw new WebApplicationException(exception,
Response.Status.INTERNAL_SERVER_ERROR);
}
return someObject;
}
我尝试给出各种URL的组合,如q1和q2中两个参数都不存在,q1缺席或q2缺席。每次都没有检测到@NotNull
。无论q1和q2是null
,都意味着尝试执行块代码。
还有什么需要做的?
我提到了这个链接 - https://jersey.java.net/documentation/latest/bean-validation.html#d0e11956。
如何在我的环境中检查Auto-Discoverable功能是否已启用?