2015-04-27 2 views
0

Я пробовал все решения, предоставленные на SO this и this, и многие другие, но ничего, похоже, не решают мою проблему. Я получаю ниже исключения@JsonIgnore не работает после обновления до весны 4.1.6

com.fasterxml.jackson.databind.JsonMappingException: could not initialize proxy - no Session (through reference chain: java.util.ArrayList[0]- 

Я не получаю, почему весной с помощью fasterxml.jackson в то время как с предыдущей версией он использовал его из codehaus

предыдущей весенней версии 3.1.2.Release текущей весной версии 4.1.6. Выпуск

+0

кроме обновления имени пакета, я думаю, это связано с трансацитонами (Hibernate, JPA и т. Д.), Вы бы предоставили связанный стек и код? – hsluo

+0

@hsluo спасибо за ваш ответ, я решил эту проблему, изменив кодхаус Джексон на quickxml jackson – ankit

ответ

3

вы должны делать совершенно противоположное тому, что рекомендуется в ссылках вы размещены, так изменить пакет ваших классов Джексона из org.codehaus.jackson в com.fasterxml.jackson

По состоянию на Spring Framework 4.1 минимальная версия Jackson должна быть 2.1 (2.3 recommended). Изменение Релевента, и возможная причина вашей проблемы в том, что с Джексоном 2.x там был пакет, сдвиг как хорошо

  • Java пакет используется «com.fasterxml.jackson» (вместо «орг .codehaus.jackson ")
  • Maven группы идентификаторы начинаются с" com.fasterxml.jackson»(вместо "org.codehaus.jackson")

Если вы используете Maven просто заменить ток Джексон-зависимостей с этим единственным

<dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>2.5.1</version> 
    </dependency> 
0

Старые версии Spring использовали Jackson 1.9, который имеет классы в пакете org.codehaus.jackson. Spring 4.1.6.Release использует Jackson 2.x, который имеет свои классы в пакете com.fasterxml.jackson. Поэтому старые аннотации просто игнорируются.

Смежные вопросы