Force Glassfish4 использует Джексона вместо Moxy

Glassfish4 использует Moxy для сериализации ответов REST в JSON. Кто-нибудь знает, как настроить приложение на использование Джексона вместо 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>