我目前正在Glassfish 4中使用Jersey和Moxy。如果它的JSON内容无效,有没有办法告诉Jersey / Moxy拒绝HTTP请求(即它包含的对象多于将JSON绑定到a时的对象POJO)?
答案 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
将在每次对象被解组时计数,如果读取的对象太多,则会出错。