Относится к: Spring Data Rest версии 2.0.2
Я пытаюсь выполнить POST сущность (адрес) с помощью @ManyToOne (вместо @OneToOne, как в примере) отношения к Person, как описано в: Вложенные ссылки Entity в сложных графах объектов, но я получаю ошибку Джексона:
org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: (was java.lang.NullPointerException) (through reference chain: Address["person"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException) (through reference chain: Address["person"])
at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.readJavaType(MappingJackson2HttpMessageConverter.java:228) ~[spring-web-4.0.3.RELEASE.jar:4.0.3.RELEASE]
Мне странно, что я могу отправить объект JSON с rel и href в атрибут "person" адреса, например:
"person": {
"rel" : "people.Person",
"href" : "http://localhost:8080/people/1"
}
Это все еще актуально? Эта страница довольно старая (2012). Есть ли обновленные документы. Я просмотрел справочный документ даже для последних (на сегодняшний день) 2.1.0 RC1, но мне это не хватает.
Любой указатель будет оценен.
Stackoverflow предложил мне увидеть этот вопрос, который в моем случае не работает с HTTP-статусом 405 - метод запроса "POST" не поддерживается... что, вероятно, проблема с конфигурацией, но мой оригинальный вопрос стоит.
Обновление 1. Из раздела 4.1 справочного документа в нем говорится:
Иногда поведение Spring Data REST ObjectMapper, которое было специально настроено для использования интеллектуальных сериализаторов, которые могут превращать объекты домена в ссылки и обратно, может неправильно обрабатывать вашу модель домена. Существует так много способов структурировать ваши данные, что вы можете найти, что ваша собственная модель домена не переводится в JSON правильно. В некоторых случаях иногда бывает нецелесообразно пытаться поддерживать комплексную модель домена в общем виде. Иногда, в зависимости от сложности, даже не представляется возможным предложить общее решение.
Проблема может заключаться в том, что я использую пользовательский ObjectMapper Jackson с поддержкой Hibernate. Я попытаюсь копать дальше.
Обновление 2. Не обращайте внимания на обновление 1, я удалил Hibernate4Module, и поведение будет одинаковым.