有没有人设法使用杰克逊2.0和泽西岛1.12。知道这将是非常有趣的。我们必须在整个地方使用杰克逊1.9.x,因为球衣有杰克逊如此强烈耦合。从我所看到的甚至球衣2.0M3仍然使用杰克逊1.9.2。因此,似乎没有必要等待球衣团队在不久的将来做到这一点。
答案 0 :(得分:4)
自定义提供商的工作;和“官方”杰克逊2.0 JSON provider project做同样的事情,有更多的功能(能够使用@JsonView
注释和其他一些资源方法)。
这是JAX-RS的优点之一:一切都是模块化的,添加新的改进提供商非常容易。
答案 1 :(得分:1)
我的项目中有Jackson 2.0和Jersey 1.12。我没有遇到任何问题,但可能的原因是我有自定义Provider和一些额外的ObjectMapper设置。简化版:
import javax.ws.rs.ext.ContextResolver;
import javax.ws.rs.ext.Provider;
import com.fasterxml.jackson.databind.ObjectMapper;
@Provider
public class ObjectMapperProvider implements ContextResolver<ObjectMapper> {
private final ObjectMapper defaultObjectMapper;
public ObjectMapperProvider() {
defaultObjectMapper = new ObjectMapper();
}
@Override
public ObjectMapper getContext(Class<?> type) {
return defaultObjectMapper;
}
}
答案 2 :(得分:-1)
如果您尝试将JsonView与Jersey一起使用,则必须使用org.codehaus.jackson.map.annotate.JsonView,如果您在此处使用方法2.2:http://wiki.fasterxml.com/JacksonFAQJaxRs
如果要使用com.fasterxml中的JsonView,则必须在该页面上使用常规方法(1)。