从 ConstraintViolationException 获取信息 - Jersey

Getting information out of ConstraintViolationException - Jersey

我正在使用 Jersey 2.19 来实现 REST API。

我启用 ServerProperties.BV_SEND_ERROR_IN_RESPONSEConstraintViolationException 转换为验证错误。这是工作。除了响应代码之外,我还在响应中得到一些文本,如下所示:

Parameter value must be 'true' or 'false' (path = MyResource.m_myParam, invalidValue = invalid).

我还创建了一个自定义异常映射器以将 ConstraintViolationExceptions 映射到我选择的特定 HTTP 响应代码。

这也有效。

但是,我注意到回复中不再显示附加信息。如果我在异常上调用 getMessage 它 returns null.

如何在我的映射器中访问相同的信息?

只需致电 ConstraintViolationException.getConstraintViolations() which will return a Set<ConstraintViolation>. Take a look at the ConstraintViolation API 即可查看您有权访问的所有信息。

您显示的特定消息是一个字符串,它是根据通过 ConstraintViolation

getMessage()getPropertyPath()getInvalidValue() 获得的信息构建的