Jersey:处理从已映射的异常创建的响应时发生错误

时间:2018-04-06 01:05:56

标签: jersey

我正在尝试添加自定义异常映射器,但是收到以下错误:

Error occurred when processing a response created from an already mapped exception.

我正在使用Dropwizard,Jersey和Kotlin。

1 个答案:

答案 0 :(得分:5)

问题是,对于在您的应用程序中注册的同一异常,有多个ExceptionMappers。要解决此问题,请确保每个Exception类只有一个ExceptionMapper。

请注意,这不会阻止为子类注册异常映射器。例如,应用程序可以为Exception或RuntimeException注册一个catch-all映射器。

OK:子类的异常映射器

class UnhandledExceptionMapper : ExceptionMapper<Exception> { ... }

并注册更具体的地图制作者。

class InvalidSearchExceptionMapper : ExceptionMapper<InvalidSearchException> { ... }

不行:同一类的多个ExceptionMappers

class UnhandledExceptionMapper : ExceptionMapper<Exception> { ... }

这将导致问题中描述的错误。

class OtherUnhandledExceptionMapper : ExceptionMapper<Exception> { ... }