我如何 return 对 Open Liberty 下的 bean 验证错误的自定义响应?

How can I return a custom reponse for a bean validation error under Open Liberty?

我们在 Open Liberty 20.0.0.3 下使用 beanValidation-2.0cdi-2.0。当检测到 bean 验证错误时,Open Liberty returns 包含 bean 验证错误消息的 400 Bad Request 响应运行良好。当 Open Liberty 检测到 bean 验证错误时,我想将我们的应用程序更新为 return 自定义响应。有没有一种方法可以让我以某种方式“拦截”bean 验证错误(或 Open Liberty 生成的响应)和 return 我自己的自定义响应?`

您可以使用自定义 MessageInterpolator 来完成此操作。 它可以通过 validation.xml 的 message-interpolator 元素指定。

通常当您收到验证错误时,会抛出一个 ConstraintViolationException,您应该能够捕捉到它并创建您自己的响应。

如果您正在使用 JAX-RS,您可能希望通过创建和注册 ExceptionMapper to handle this type of exception and turn it into a response. There's an example here.