Jackson+JAXB в безопасности

Мне нужно сериализовать мой объект POJO, основанный на аннотациях JAXB. Я могу легко сделать это с Джексоном (добавив JaxbAnnotationIntrospector). Возможно ли без какого-либо явного кодирования?

Было бы очень хорошо написать это бегло, похожее на это:

port(Integer.valueOf(port)).
            log().all().
            contentType(ContentType.JSON).
            body(criteria, ObjectMapperType.JACKSON_2)

Тем не менее, этот игнорирует JAXB. Я хочу найти какое-то аккуратное и чистое решение. Jackson + JAXB — это очень распространенная практика, будет очень обидно, если RestAssured не будет оснащен им под капотом. На форуме нашел что-то вроде этого:

RestAssured.config = RestAssuredConfig.config().objectMapperConfig(new ObjectMapperConfig().jackson2ObjectMapperFactory(
new Jackson2ObjectMapperFactory() {
        @Override
        public ObjectMapper create(Class aClass, String s) {
            FilterProvider filter = new SimpleFilterProvider().addFilter(...);
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.setFilters(filter);
            return objectMapper;
        }
    }
));

но это будет моим последним средством.


person yuranos    schedule 16.02.2015    source источник


Ответы (1)


Если это распространенный вариант использования, добавьте его как проблему, и я попробую интегрировать по умолчанию.

person Johan    schedule 18.02.2015
comment
Йохан, я не говорю о конфигурации по умолчанию, но эта довольно распространена. Можете ли вы добавить сопоставитель, такой как ObjectMapperType.JACKSON_2_JAXB или что-то в этом роде. По умолчанию, на мой взгляд, должны использоваться аннотации Джексона, тот, который я хочу, должен быть необязательным. Мне создать проблему? - person yuranos; 18.02.2015
comment
Пожалуйста, попробуйте последний снимок, 2.4.1-SNAPSHOT и посмотрите, была ли проблема решена. См. code.google.com/p/rest-assured/wiki/snapshot для более подробной информации. Если нет, пожалуйста, добавьте проблему. - person Johan; 18.02.2015
comment
Хорошо, я поиграл с этим. Выглядит неплохо. Спасибо, Йохан! Когда можно ожидать релиз? - person yuranos; 19.02.2015
comment
Не уверен. В настоящее время в 2.4.1-SNAPSHOT ничего не изменилось, кроме этого крошечного изменения, так что его использование должно быть безопасным. - person Johan; 19.02.2015
comment
Поведение, о котором мы говорим, довольно простое. Сегодня я проверил другой наш сервис, написанный на Spring+Camel+CXF, и именно так он и работает. С вашим последним обновлением SNAPSHOT мой спокойный клиент может правильно общаться с моим сервером Spring + Camel + CXF, но когда я переключаюсь обратно на 2.4.0, связь не работает. Причина в том, что клиент и сервер используют одни и те же DTO, но то, как эти DTO маршалируются сервером, не понимается защищенным клиентом на основе 2.4.0. Какие-нибудь приблизительные оценки следующего релиза? - person yuranos; 20.02.2015