【发布时间】:2014-10-15 02:00:10
【问题描述】:
我正在使用 Jersey 1.x 现在我正在迁移到 Jersey 2.x
我现在面临的问题是在 Jersey 2.8 中使用 Jackson(JSON 提供程序)
告诉我怎样才能摆脱这个问题。我将使用 Jersey 2.8 那么如何使用 Jackson 呢。
【问题讨论】:
标签: jersey-2.0
我正在使用 Jersey 1.x 现在我正在迁移到 Jersey 2.x
我现在面临的问题是在 Jersey 2.8 中使用 Jackson(JSON 提供程序)
告诉我怎样才能摆脱这个问题。我将使用 Jersey 2.8 那么如何使用 Jackson 呢。
【问题讨论】:
标签: jersey-2.0
在这里我找到了我的问题的解决方案。
我唯一需要做的就是将 Jackson 提供程序和 ContextResolver 注册到 ObjectMapper..
@提供者
公共类 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;
}
// ...
}
现在注册您的 Jackson 提供商。
最终应用程序 application = new ResourceConfig().register(UserObjectProvider.class)
.register(JacksonFeature.class);
谢谢
【讨论】: