2017-12-04 7 views
0

Ich habe eine Reihe von Jersey Ausnahme Mapper und heute habe ich festgestellt, dass Google Cache meine Ausnahmen in UncheckedExecutionException umschließt. Wrapped Exceptions umgehen meine Exception Mapper.Exception Mapper Umleitung

Es gibt eine Idee, einen anderen Exception Mapper für UncheckedExecutionException zu definieren und alle meine Exception Mapper zu injizieren, aber wie Code Duplikation in Dispatching-Mechanismus zu vermeiden. Der neue Exception-Mapper sollte nur die verursachte Ausnahme aussortieren.

Antwort

0

Meine erwartete Lösung war in der Nähe. Der einzige Trick besteht darin, Zyklusreferenzen in HK2 zu vermeiden.

@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()); 
    }