2016-08-17 2 views
1

Похоже проверки для запроса Param не работает, но проверка для тела работает (Использование @POST)Джерси - проверка не работает для запроса Param

@GET 
@Path("{id}") 
public Foo get(@PathParam("id") Integer id, 
       @NotNull @QueryParam("param1") Integer param1) { 
.... 
} 

pom.xml

<dependency> 
     <groupId>org.glassfish.jersey.containers</groupId> 
     <artifactId>jersey-container-servlet</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.ext</groupId> 
     <artifactId>jersey-bean-validation</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.media</groupId> 
     <artifactId>jersey-media-json-jackson</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.media</groupId> 
     <artifactId>jersey-media-sse</artifactId> 
    </dependency> 

ответ

1

Чтобы активировать проверку, добавьте аннотацию @Valid к параметру.

@GET 
@Path("{id}") 
public Foo get(@PathParam("id") Integer id, 
       @Valid @NotNull @QueryParam("param1") Integer param1) { 
.... 
} 
+0

Действительно для проверки каскадирования, чтобы внутренние свойства объекта, аннотированного с помощью Valid, были проверены. Так что это не правильный ответ. См. Https://jersey.java.net/documentation/latest/bean-validation.html#d0e13614 – marians27

+0

@ marians27 hm кажется, что вы правы. Любая идея, почему валидация не работала раньше/что является правильным ответом? –

+0

Не могу сказать без лишних подробностей. @richersoon Я вижу, что вы приняли ответ, действительно ли он работает с Valid аннотацией и без этого? – marians27