强制Glassfish4使用杰克逊代替Moxy

时间:2013-08-19 15:48:34

标签: glassfish jersey jackson moxy

Glassfish4正在使用Moxy将REST响应序列化为JSON。有谁知道如何配置应用程序使用Jackson而不是Moxy?

2 个答案:

答案 0 :(得分:15)

如果您想将Jackson用作JSON提供程序,则需要在应用程序中注册JacksonFeature(通过注册此功能,禁用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);

有关详细信息,请参阅“泽西用户指南”中的Jackson部分。

答案 1 :(得分:4)

Michal Gajdos的回答是正确的,只是为了补充一点,在你的pom.xml中添加这个依赖,

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>2.26</version>
</dependency>