杰克逊如何使用Jersey 2.8?

时间:2014-08-21 12:22:39

标签: jersey-2.0

我正在使用Jersey 1.x现在我正在迁移到Jersey 2.x

我现在面临的问题是使用Jackson(JSON提供商)和Jersey 2.8

告诉我如何摆脱这个问题。我将使用泽西岛2.8,以便如何使用杰克逊。

1 个答案:

答案 0 :(得分:1)

在这里,我找到了问题的解决方案。

我唯一需要做的就是将Jackson提供程序和ContextResolver注册到ObjectMapper ..

@Provider

公共类UserObjectProvider实现ContextResolver {

final ObjectMapper defaultObjectMapper;
final ObjectMapper combinedObjectMapper;

public UserObjectProvider () {
    defaultObjectMapper = createDefaultMapper();
    combinedObjectMapper = createCombinedObjectMapper();
}

@Override
public ObjectMapper getContext(Class<?> type) {
    if (type == CombinedAnnotationBean.class) {
        return combinedObjectMapper;
    } else {
        return defaultObjectMapper;
    }
}

private static ObjectMapper createDefaultMapper() {
    final ObjectMapper result = new ObjectMapper();
    result.configure(Feature.INDENT_OUTPUT, true);

    return result;
}

// ...

}

现在注册您的杰克逊提供商。

final Application application = new ResourceConfig()。register(UserObjectProvider.class)
        .register(JacksonFeature.class);

由于