Garip Jackson istisna Hazırda nesne seri hale getirilirken, atılan
Jackson nasıl düzelteceğimi bilmiyorum garip bir durum üretiliyor. Bahar, Hazırda bekleme ve Jackson kullanıyorum.
Zaten tembel yükleme sorunu neden olduğunu düşündüm, ama şöyle: Jackson çeşitli özellikleri işlemek için DEĞİL anlatmak için önlemler almış
@JsonIgnoreProperties({ "sentMessages", "receivedMessages", "educationFacility" })
public class Director extends UserAccount implements EducationFacilityUser {
....
}
Tüm diğer kullanıcı hesabı sınıfları için aynı şeyi de yaptım.
İşte bu özel durumu oluşturuldu:
org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: java.util.ArrayList[46]->jobprep.domain.educationfacility.Director_$$_javassist_2["handler"])
at org.codehaus.jackson.map.ser.StdSerializerProvider$1.serialize(StdSerializerProvider.java:62)
at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:268)
at org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:146)
at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:118)
at org.codehaus.jackson.map.ser.ContainerSerializers$IndexedListSerializer.serializeContents(ContainerSerializers.java:236)
at org.codehaus.jackson.map.ser.ContainerSerializers$IndexedListSerializer.serializeContents(ContainerSerializers.java:189)
at org.codehaus.jackson.map.ser.ContainerSerializers$AsArraySerializer.serialize(ContainerSerializers.java:111)
at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:296)
at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:224)
at org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:925)
at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.writeInternal(MappingJacksonHttpMessageConverter.java:153)
Buna neyin sebep olduğunu görmek için daha fazla bilgi nasıl alabilirim bir öneriniz var mı? Herkes bunu düzeltmek nasıl biliyor?
DÜZENLEME:Bu getHander keşfettim() diğer*() yöntemleri proxy nesnesi var. GRR!! Jackson vekil hakkında herhangi bir işlem olmadığını söyleyebilirim hiçbir yolu yoktur, ya da sol mıyım? Bu JSON ortaya döküyor bu yöntem, yalnızca belirli koşullar altında çöküyor çünkü gerçekten çok garip, her zaman değil. Yine de,* almak için son gün (proxy) nesne yöntemleri.
Kenara: Vekiller kötüdür. Onlar Jackson bozabilir, equals() ve normal Java programlama birçok diğer parçaları. Hazırda tamamen: / hendek için cazip duyuyorum
CEVAP
Hazırda proxy nesnesi aracılığıyla, tembel yükleme ile benzer bir sorunu vardı. Sınıf ile, özel özellikleri lazyloaded olan açıklama ekleyerek, etrafında var:
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
Bu açıklama için JSON serileştirme tatili proxy nesne özellikleri ekleyebilirsiniz sanırım.
Seri hale getirilirken Jackson ile çet...
Döngüsel bir başvuru türü 'ses hı...
Parcelable yerine nesne seri hale geti...
Jackson (JSON) - " ile seri hale g...
Siklik içeren nesne seri hale getirili...