JsonMappingException: @JsonIgnore игнорируется при сериализации - PullRequest
0 голосов
/ 27 марта 2019

Этот фрагмент кода генерирует исключение JsonMappingException из-за NullPointerException:

@Test
public void helpMe() throws JsonProcessingException {
    StubMapping stub = StubMapping.NOT_CONFIGURED;
    ObjectMapper om = new ObjectMapper();
    System.out.println("Stub: " + om.writeValueAsString(stub));
}

Действительно, это идет здесь, и все поля нулевые:

Caused by: java.lang.NullPointerException
    at com.github.tomakehurst.wiremock.http.ResponseDefinition.getProxyUrl(ResponseDefinition.java:286)

    @JsonIgnore
    public String getProxyUrl() {
        return this.browserProxyUrl != null ? this.browserProxyUrl : this.proxyBaseUrl + this.originalRequest.getUrl();
    }

@ JsonIgnore Документация:

Маркерная аннотация, указывающая на то, что аннотированный метод или поле должны игнорироваться функционалом сериализации и десериализации на основе интроспекции

При наличии личного объекта с @JsonIgnore на получателе сериализация работает, как и ожидалось, и получатель игнорируется. Так почему здесь Джексон пытается десериализовать поле с аннотацией @JsonIgnore на объекте Wiremock?

Примечания:

  • Я пытался установить миксины и фильтры на ObjectMapper, но всегда получал это исключение (во всяком случае, это не очень хорошее объяснение)
  • Все взято из "com.fasterxml.jackson"
  • Я не хочу отключать AUTO_DETECT_GETTERS
...