Я пытаюсь интегрировать https://rollbar.com/ в приложение Jhipster.
В своей документации они предлагают создать класс, подобный следующему:
@ControllerAdvice
@EnableWebMvc
public class GlobalExceptionHandlerController {
public static final String DEFAULT_ERROR_VIEW = "error";
@ExceptionHandler(value = Exception.class)
public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
final Rollbar rollbar = new Rollbar(withAccessToken("8e194f5f31db4ff1b4e3e0951a40c936")
.environment("production").handleUncaughtErrors(true).build());
rollbar.error(e);
ModelAndView mav = new ModelAndView();
mav.addObject("exception", e);
mav.addObject("url", req.getRequestURL());
mav.setViewName(DEFAULT_ERROR_VIEW);
return mav;
}
Однако jHipster уже имеет класс, помеченный @ControllerAdvice
: public class ExceptionTranslator implements ProblemHandling
, и если я добавлю вышеупомянутый метод, интеграция роликов будет работать, но тогда я получу неудачные тесты для
ExceptionTranslatorIntTest.testExceptionWithResponseStatus:126 Status expected:<400> but was:<200>
ExceptionTranslatorIntTest.testInternalServerError:135 Status expected:<500> but was:<200>
, поскольку новый метод не позволяет вводить метод ExceptionTranslator.process(@Nullable ResponseEntity<Problem> entity)
.
Iне уверен, что это хороший подход для достижения обеих функций?
Спасибо!