我正在使用Jersey来开发我的REST Web服务。
我正在尝试实现验证,为此我使用了与JSR-303 Bean Validation Jersey提供的出色集成。
然后我定义了一个ExceptionMapper来从发生的错误中输出我想要的内容。问题是,有时,异常不会发生在Bean Validation的上下文中。
示例:
客户端为浮点数发送无效值(例如“ABC”)。 Jackson抛出一个异常,因为它无法将给定的JSON解析为浮点值。这是预料之中的。
我可以为这个异常编写一个ExceptionMapper并将其输出到客户端。 但是,我想要的是 收集所有 来自各种来源的这些不同的异常,并将它们全部输出。换句话说,我想在同一个响应中输出解析期间发生的错误和Bean Validation,而不是单独的。
有没有办法继续收集所有异常并最终将它们全部输出? 我假设的第一个问题是,在Jackson正确解析请求之前,Bean验证永远不会发生。
答案 0 :(得分:0)
正如你猜测的那样,没有办法做到这一点,因为异常发生在不同的时间。如果JSON无效,则Jersey无法继续,因此不会进行bean验证。