Заставить Glassfish4 использовать Джексона вместо Мокси
Glassfish4 использует Moxy для сериализации ответов REST в JSON. Кто-нибудь знает, как настроить приложение для использования Джексона вместо Мокси?
2 ответа
Решение
Вам необходимо зарегистрировать JacksonFeature в своем приложении, если вы хотите использовать Jackson в качестве вашего JSON-провайдера (зарегистрировав эту функцию, вы отключите MOXy в качестве вашего JSON-провайдера).
Вы можете сделать это либо в Application
подкласс:
public class MyApplication extends Application {
public Set<Class<?>> getClasses() {
final Set<Class<?>> classes = new HashSet<Class<?>>();
// Add root resources.
classes.add(HelloWorldResource.class);
// Add JacksonFeature.
classes.add(JacksonFeature.class);
return classes;
}
}
или в ResourceConfig
:
final Application application = new ResourceConfig()
.packages("org.glassfish.jersey.examples.jackson")
.register(MyObjectMapperProvider.class) // No need to register this provider if no special configuration is required.
// Register JacksonFeature.
.register(JacksonFeature.class);
См. Раздел Джексон в Руководстве пользователя Джерси для получения дополнительной информации.
Михал Гайдос ответил правильно, просто чтобы добавить это, добавьте эту зависимость в ваш pom.xml,
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.26</version>
</dependency>
Не хватает кредитов, чтобы комментировать.