我正在使用Jersey 1.x现在我正在迁移到Jersey 2.x
我现在面临的问题是使用Jackson(JSON提供商)和Jersey 2.8
告诉我如何摆脱这个问题。我将使用泽西岛2.8,以便如何使用杰克逊。
答案 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);
由于