所以我发现了问题。我能够重现它。看来您只是忘记了启用POJOMappingFeature
<init-param> <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> <param-value>true</param-value></init-param>
这使用Jackson进行反序列化/序列化。如果未设置,它将使用Jersey的内部JSON提供程序进行反序列化/序列化。我不确定如何配置默认提供程序,但是无论如何,只要与Jackson一起使用,都是比较安全的。
除此之外,我在上面的评论中说要测试是否正在使用Jackson。一种轻松实现此目的
ContextResolver的
getContext方法是在方法内部创建一个and和sop
。需要映射器时将调用此方法。因此,如果正在使用杰克逊,则应打印出
@Providerpublic class ObjectMapperContextResolver implements ContextResolver<ObjectMapper> { private final ObjectMapper defaultMapper; public ObjectMapperContextResolver() { defaultMapper = new ObjectMapper(); } @Override public ObjectMapper getContext(Class<?> type) { System.out.println("--- getContext ---"); return defaultMapper; } }请注意,这也是使用Jackson序列化/反序列化进行任何配置的一种方法(只需配置映射器)。



