Glassfish4 использует Moxy для сериализации ответов REST в JSON. Кто-нибудь знает, как настроить приложение на использование Джексона вместо Moxy?
Force Glassfish4 использует Джексона вместо Moxy
Ответ 1
Вам необходимо зарегистрировать 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);
См. Раздел Джексона в Руководстве пользователя Джерси для получения дополнительной информации.
Ответ 2
Михал Гайдос ответил правильно, просто чтобы добавить это, добавьте эту зависимость в ваш pom.xml,
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.26</version>
</dependency>