: @JsonFilter ek açıklamasının çalışma zamanında kullanılmasını seçici olarak belirlemek mümkün mü?@JsonFilter "JsonMappingException: BeanPropertyFilter'ı çözemiyor"
Filtreyi vermediğimde JsonMappingException istisnası alıyorum (aşağıya bakın).
Geçmiş:
ben dinamik fasulye özellikleri tefrika alma filtrelemek için @JsonFilter kullanabilirsiniz recent StackOverflow post öğrendi. Bu harika çalışıyor.
// shortened for brevity
FilterProvider filters = new SimpleFilterProvider().addFilter("apiFilter", SimpleBeanPropertyFilter.filterOutAllExcept(filterProperties));
return mapper.filteredWriter(filters).writeValueAsString(user);
sorun: Alan sınıfına ve benim jax-rs hizmetinde bu kodu (CXF uygulamasını kullanarak) eklenmesiyle @JsonFilter("apiFilter")
ekledikten sonra, Dinamik benim RESTful API tarafından döndürülen özelliklerini süzmek mümkün duyuyorum Filtreyi hiç uygulamak istemediğim farklı servis çağrıları var mı? Bu durumlarda, herhangi bir özelliği filtrelemeden tüm etki alanı sınıfını döndürmek istiyorum.
Caused by: org.codehaus.jackson.map.JsonMappingException: Can not resolve BeanPropertyFilter with id 'apiFilter'; no FilterProvider configured
at org.codehaus.jackson.map.ser.BeanSerializer.findFilter(BeanSerializer.java:252)
at org.codehaus.jackson.map.ser.BeanSerializer.serializeFieldsFiltered(BeanSerializer.java:216)
at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:140)
, her jax-rs servis çağrısında hangi yazar yönteminin çağrılacağını kontrol etmek için kodu eklemem gerekir mi? Bazı servis yöntemlerinde bir String yerine gerçek bir Kullanıcı nesnesi döndürürüm. Girişiniz için çok teşekkürler! – Justin
Tamam, bir şans verdim. önerdiğin "hile" işe yarıyor ama ikinci "temiz" önerinizi işe alamadım. Bu durumda hala "FilterProvider yapılandırılmış" hatası alıyorum. Tekrar teşekkürler. – Justin
@Justin: iyi, IMO, bir sorunu çözen bir "temiz" olmayan bir "temiz" olmayan bir çözüm daha "temiz" bir çözümdür :). Umarım sorununun çözülmesine yardımcı olur. –