Могу ли я указать Джексона ObjectMapper
, который использует RestTemplate
Spring?
Я не на 100%, это то, что мне нужно сделать, но подробности см. Ниже.
Справочная информация: С помощью этого сообщения в StackOverflow Я добавил @JsonFilter в свой класс домена и отредактировал свой веб-сервис jax-rs (реализован в CXF).Теперь я успешно могу динамически выбирать, какие поля класса домена возвращать в моем RESTful API.Пока все хорошо.
Я использую RestTemplate Spring в моих тестах JUnit для тестирования моего RESTful API.Это работало нормально, пока я не добавил @JasonFilter в свой класс домена.Теперь я получаю следующее исключение:
org.springframework.web.client.ResourceAccessException: ошибка ввода-вывода: не удается разрешить BeanPropertyFilter с идентификатором 'apiFilter';не настроен FilterProvider;вложенное исключение: org.codehaus.jackson.map.JsonMappingException: не удается разрешить BeanPropertyFilter с идентификатором «apiFilter»;нет FilterProvider настроен
в org.springframework.web.client.RestTemplate.doExecute (RestTemplate.java:453)
остаток трассировки стека опущен для краткости
Причина:org.codehaus.jackson.map.JsonMappingException: не удается разрешить BeanPropertyFilter с идентификатором 'apiFilter';нет настроенного FilterProvider
в org.codehaus.jackson.map.ser.BeanSerializer.findFilter (BeanSerializer.java:252)
У меня была похожая проблема на стороне сервера иудалось решить его (с помощью этого поста ), дав FilterProvider
Джексону ObjectMapper
следующим образом:
ObjectMapper mapper = new ObjectMapper();
FilterProvider filters = new SimpleFilterProvider().addFilter("apiFilter", SimpleBeanPropertyFilter.filterOutAllExcept(filterProperties));
Могу ли я сделать что-то похожее на RestTemplateбоковая сторона?Любые идеи о том, как решить эту проблему, приветствуются.
Просто чтобы быть ясным, на стороне клиента RestTemplate я не хочу фильтровать свойства объекта домена вообще.