REST Easy jackson自定义ObjectMapper没有反映在多个REST API调用中

时间:2015-09-08 19:06:02

标签: json rest jackson resteasy

我想自定义ObjectMapper for RESTEasy以动态隐藏POJO中的某些字段。我扩展了JacksonProvider并覆盖了writeTo方法。我得到了ObjectMapper的引用并添加了mixins注释。每次我向服务器发送REST API调用时,都会调用writeTo方法,并根据某些条件设置mixins注释。但它只是第一次反映出来。如果我修改mixin注释,它在后续调用中根本不会反映出来。看起来像RESTEasy克隆并在某处缓存ObjectMapper。如何解决这个问题?同样的事情我也要做Xml。

@Provider
public class MyJacksonJsonProvider extends JacksonJsonProvider
{
    @Override
    public void writeTo(Object value, Class<?> type, Type genericType, Annotation[] annotations, 
            MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) 
            throws IOException 
    {
        ObjectMapper mapper = locateMapper(type, mediaType);

        mapper.setMixinAnnotations(someDynamicmixinAnnotations);

        super.writeTo(value, type, genericType, annotations, mediaType, httpHeaders, entityStream);
    }
}

此致 Abdun

0 个答案:

没有答案