2017-01-13 20 views
-1

я правильно зарегистрирован JacksonJaxbJsonProvider в моих JAX-RS 2.0 приложений с помощью:JAX-RS 2.0: Как зарегистрировать Feature или ContextResolver иметь пользовательские JaxbAnnotationIntrospector самоанализ, зарегистрированный в Mapper

public Set<Class<?>> getClasses() { 
... classes.add(com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider.class); 
} 

Теперь мне нужно для настройки Mapper, который он сам использует в ресурсах JAX-RS, потому что мне нужно добавить SerializationFeature.FAIL_ON_EMPTY_BEANS.

Я видел примеры того, как это сделать, используя Feature или пользовательский Contextresolver, но я знаю, как добавить его к Mapper, который я создаю в своем исходном коде, но я не могу добавить его в Mapper, который используют службы REST используя:

Поскольку приложение JAX-RS 2.0 игнорирует эти классы.

Как добавить функцию или ContextResolver в приложение JAX-RS, чтобы они были распознаны?

ответ

0

Вы можете повторно использовать пользовательскую заявку на исполнение в Джерси. More Info И используя ContextResolver, вы можете использовать пользовательский ObjectMapper.

Пример:

public class MyApplication extends ResourceConfig { 
    public MyApplication() { 
     /* packages that contains JAX-RS components, registers them to use also */ 
     packages("org.foo.rest;org.bar.rest"); 
     /* here register the provider */ 
     register(MapperProvider.class); 
} 

}

MapperProvider класса.

@Provider 
public class MapperProvider implements ContextResolver<ObjectMapper> { 

@Override 
public ObjectMapper getContext(Class<?> arg0) { 
    /* you can configure the mapper as you like */ 
    return new ObjectMapper() 
      .registerModule(new JaxbAnnotationModule() 
      .configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false)); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^