2015-08-11 4 views
3

среды: Dropwizard 0.8.1, Java 1,8Dropwizard проверка не работает

Я не могу получить проверки поддержки Dropwizard, чтобы сделать что-нибудь. Я считаю, что следую тому, что предлагает руководство. Используя следующий ресурс, например (и варианты с использованием @Valid на атрибутах модели класса, @Validated вместо @Valid, @NotEmpty в Hibernate вместо javax.validation.constraints.NotNull и т.д.):

@Path("/test") 
@Produces(MediaType.APPLICATION_JSON) 
@Consumes(MediaType.APPLICATION_JSON) 
public class TestResource { 
    static public class ModelClass { 
     @JsonProperty("only_null") @Null public String onlyNull; 
     @JsonProperty("not_null") @NotNull public String notNull; 
    } 

    @PUT 
    public ModelClass testContainer(@Valid ModelClass record) { 
     return record; 
    } 
} 

Если Я PUT следующее:

{"only_null":"shouldFail"} 

, а не ожидаемый 422, я получаю обратно:

{"only_null":"shouldFail","not_null":null} 

Что я здесь отсутствует? Есть ли какая-то конфигурация, которая должна быть включена, чтобы включить проверку, которую я пропустил?

ответ

0

Ваш код работает для меня. Я использовал следующие аннотации:

import javax.validation.Valid; 
import javax.validation.constraints.NotNull; 
import javax.validation.constraints.Null; 

Двойная проверка, как вы отправляете запрос. Я использовал curl, чтобы отправить запрос:

$ curl -v -X PUT 'http://localhost:8080/test' -H 'Content-Type: application/json' -d '{"only_null":"shouldFail"}' 
< HTTP/1.1 422 
{"errors":["notNull may not be null (was null)","onlyNull must be null (was shouldFail)"]} 
Смежные вопросы