Я пытаюсь использовать 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 включена в моей среде?