收集发生的所有错误/异常,并输出它们

时间:2014-01-21 18:21:15

标签: java rest jersey bean-validation jersey-2.0

我正在使用Jersey来开发我的REST Web服务。

我正在尝试实现验证,为此我使用了与JSR-303 Bean Validation Jersey提供的出色集成。

然后我定义了一个ExceptionMapper来从发生的错误中输出我想要的内容。问题是,有时,异常不会发生在Bean Validation的上下文中。

示例:

客户端为浮点数发送无效值(例如“ABC”)。 Jackson抛出一个异常,因为它无法将给定的JSON解析为浮点值。这是预料之中的。

我可以为这个异常编写一个ExceptionMapper并将其输出到客户端。 但是,我想要的是 收集所有 来自各种来源的这些不同的异常,并将它们全部输出。换句话说,我想在同一个响应中输出解析期间发生的错误和Bean Validation,而不是单独的。

有没有办法继续收集所有异常并最终将它们全部输出? 我假设的第一个问题是,在Jackson正确解析请求之前,Bean验证永远不会发生。

1 个答案:

答案 0 :(得分:0)

正如你猜测的那样,没有办法做到这一点,因为异常发生在不同的时间。如果JSON无效,则Jersey无法继续,因此不会进行bean验证。