Java 是否使用dropwizard捕获json处理异常?

Java 是否使用dropwizard捕获json处理异常?,java,json,jackson,jersey-2.0,dropwizard,Java,Json,Jackson,Jersey 2.0,Dropwizard,我有一个dropwizard应用程序,它注册了一个全局异常处理程序,实现了ExceptionMapper。如果我从资源中抛出任何运行时异常,映射程序就会被命中 然而,在一个测试中,我将JSON发布到一个资源中,该资源中缺少jackson多态类型的类型鉴别器。Jersey返回了一个400,我可以看到在遍历代码时抛出了一个JsonProcessingException,但是全局映射程序没有被命中 通过检查environment.jersey().getResourceConfig().getSing

我有一个dropwizard应用程序,它注册了一个全局异常处理程序,实现了
ExceptionMapper
。如果我从资源中抛出任何运行时异常,映射程序就会被命中

然而,在一个测试中,我将JSON发布到一个资源中,该资源中缺少jackson多态类型的类型鉴别器。Jersey返回了一个400,我可以看到在遍历代码时抛出了一个
JsonProcessingException
,但是全局映射程序没有被命中

通过检查
environment.jersey().getResourceConfig().getSingletons()
集,我试图查看是否有其他已注册的异常映射程序,并尝试注销它们,但没有注册其他异常映射程序

我还尝试为该异常创建一个特定的处理程序,但没有骰子。即使这样,如果我已经有了一个全局处理程序来处理所有可丢弃的东西,那也有点奇怪

有人遇到过这种情况吗

--

编辑:


看起来dropwizard异常映射器确实得到了注册,我需要找出在生命周期中发生的时间并注销它

是的,您确实需要覆盖
JsonProcessingException的异常映射器
()

看起来dropwizard异常映射器已经注册了,我需要知道在生命周期中什么时候发生这种情况,然后取消注册它


您可以找到如何覆盖此上的ExceptionMapper。

太好了,谢谢!我想知道为什么我不能注销它们,因为我在jersey 2上使用dropwizard 8,所以答案中的标志是完美的。