Этот фрагмент кода генерирует исключение 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