【问题标题】:How to make Jersey / Moxy more restrictive when unmarshaling JSON?解组 JSON 时如何使 Jersey / Moxy 更具限制性?
【发布时间】:2014-07-27 13:17:38
【问题描述】:

我目前在 Glassfish 4 中使用 Jersey 和 Moxy。如果 JSON 内容无效(即它包含的对象比将 JSON 绑定到POJO)?

【问题讨论】:

    标签: jax-rs moxy jersey-2.0


    【解决方案1】:

    我将创建自己的MOXyJsonProvider 子类(请参阅:http://blog.bdoughan.com/2012/05/moxy-as-your-jax-rs-json-provider.html)。然后在那个子类中我会覆盖preReadFrom 方法。在那种方法中,我会设置一个Unmarshaller.Listener

    @Override
    protected void preReadFrom(Class<Object> type, Type genericType,
            Annotation[] annotations, MediaType mediaType,
            MultivaluedMap<String, String> httpHeaders,
            Unmarshaller unmarshaller) throws JAXBException {
        Unmarshaller.Listener ul = new YourUnmarshallerListener();
        unmarshaller.setListener(ul);
    }
    

    然后Unmarshaller.Listener 将在每次解组对象时计数,如果读取的对象过多,则会出错。

    【讨论】:

    • 好主意!谢谢!我想由于 @Provider 注释,这段代码会自动注入到 Glassfish 上,对吧?
    猜你喜欢
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 2018-12-23
    • 2016-03-30
    • 2015-06-02
    • 2016-04-28
    • 1970-01-01
    • 2018-12-21
    相关资源
    最近更新 更多