我遇到的情况是,如果验证失败并且有相应的错误消息,我想向用户返回请求。我遇到的问题是我使用Jackson处理JSON请求,验证失败也导致Jackson无法序列化邮件。
例如,如果我有这个对象:
public class SomeRequest
{
@Size(min=1, max=10)
private String someField;
//getter and setter here
}
...当我在字段无效时进行序列化时(让我们说它有11个字符)...
ObjectMapper mapper = new ObjectMapper();
output = mapper.writeValueAsString(someRequestInstance);
...我得到一个JsonProcessingException(Error(s)验证对象)。我已经确认有效对象没有序列化问题。 所以我的问题是这个:如何让杰克逊在序列化时忽略javax.validation注释?
提前致谢!
答案 0 :(得分:0)
默认情况下,Jackson不会在JSON序列化上调用bean验证(javax.validation.constraints)。要么覆盖/自定义默认行为,要么执行任何类型的拦截器/挂钩。
研究堆栈跟踪,以找出确切发生异常的位置并深入研究。