异常映射器重新路由

时间:2017-12-04 17:37:30

标签: java jersey-2.0

我有一套球衣异常映射器,今天我意识到了这一点 google cache将我的异常包装到UncheckedExecutionException中。 包装的异常绕过我的异常映射器。

有一个想法是为UncheckedExecutionException定义另一个异常映射器并注入我的所有异常映射器,但是如何避免调度机制中的代码重复。新的异常映射器应该只消除引起的异常。

1 个答案:

答案 0 :(得分:0)

我的预期解决方案很接近。 唯一的技巧就是避免HK2中的循环引用。

@Inject
private Provider<ExceptionMappers> mappersProvider;


register(UncheckedExecutionExceptionMapper.class);

    @Override
    public Response toResponse(UncheckedExecutionException exception) {
        log.error("Error {}", exception.getMessage(), exception);
        return mappersProvider.get().findMapping(exception.getCause()).toResponse(exception.getCause());
    }