нельзя использовать пользовательский сопоставитель объектов для отдельных объектов в джерси (работает для коллекций)

Я использую последнюю версию Джерси (2.13) на сервере Glassfish вместе с последней версией jackson (версия 2.4). Я написал и зарегистрировал пользовательский ObjectMapper, но только коллекции, кажется, сериализуются моим пользовательским ObjectMapper.

Я видел похожую проблему на этой странице: https://java.net/jira/browse/GLASSFISH-20815, но представленный там обходной путь мне не помог.

Мой класс поставщика картографов:

Открытый класс @Provider JerseyMapperProvider реализует ContextResolver {

private static ObjectMapper apiMapper = null;

public JerseyMapperProvider() {
}

@Override
public ObjectMapper getContext(Class<?> type) {
    System.out.println(type.toString() + " this is only printed for collections...");
    if (apiMapper == null) {
        apiMapper = getDefaultObjectMapper();
    }
    return apiMapper;
}

...


person Nolf    schedule 12.11.2014    source источник


Ответы (1)


хорошо, внезапно это сработало, добавив следующие функции в мой resourceConfig...

@ApplicationPath("/")

public class JerseyConfig extends ResourceConfig {

public JerseyConfig() {
    super();
    Map<String, Object> map = new HashMap<>();
    map.put(CommonProperties.MOXY_JSON_FEATURE_DISABLE, true);
    map.put(CommonProperties.JSON_PROCESSING_FEATURE_DISABLE, true);
    addProperties(map);
    ....// more configuration here..

}
}
person Nolf    schedule 12.11.2014