Подтвердить что ты не робот

@NotNull аннотация не проверяет null queryparameter в ресурсе REST на Джерси

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

4b9b3361