我可以指定Spring的RestTemplate
使用的Jackson ObjectMapper
嗎?使用@JsonFilter時,帶有Jackson的Spring RestTemplate會拋出「無法解析BeanPropertyFilter」
我不是100%,這是我需要做的,但看到下面的細節。
背景: 從this StackOverflow post我加@JsonFilter我的域類和編輯我的JAX-RS Web服務(在CXF實現)的幫助。我現在可以成功地動態選擇在我的RESTful API中返回哪些域類字段。到現在爲止還挺好。
我在我的JUnit測試中使用Spring的RestTemplate來測試我的RESTful API。直到我將@JasonFilter添加到我的域類中,這工作正常。現在,我得到以下異常:
org.springframework.web.client.ResourceAccessException: I/O error: Can not resolve BeanPropertyFilter with id 'apiFilter'; no FilterProvider configured; nested exception is org.codehaus.jackson.map.JsonMappingException: Can not resolve BeanPropertyFilter with id 'apiFilter'; no FilterProvider configured
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:453)
rest of stack trace omitted for brevity
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)
我得到在服務器端有類似的問題,並能夠解決它(從this post幫助)通過給FilterProvider
到傑克遜ObjectMapper
如下:
ObjectMapper mapper = new ObjectMapper();
FilterProvider filters = new SimpleFilterProvider().addFilter("apiFilter", SimpleBeanPropertyFilter.filterOutAllExcept(filterProperties));
我可以在RestTemplate方面做類似的事嗎?任何想法如何解決這個問題,我們感激。
要清楚的是,在客戶端RestTemplate方面,我根本不想過濾域對象屬性。