我有一种情况,如果它失败验证以及相应的错误消息,我想向用户返回一个请求。我遇到的问题是我正在使用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注释?
提前致谢!
默认情况下,Jackson不会在JSON序列化上调用bean验证(javax.validation.constraints)。默认行为被覆盖/自定义或者有任何类型的拦截器/钩子这样做。
研究堆栈跟踪以找出确切异常发生的位置并挖掘它。