Я использую Spring MVC framework. Я хочу регистрировать статусы ошибок всякий раз, когда генерируется исключение, поэтому метод afterCompletion
используется в HanlderInterceptor
.HandlerInterceptor.afterCompletion() весной MVC меняет код ответа
@Override
public void afterCompletion(final HttpServletRequest request, final HttpServletResponse response, final Object handler, final Exception ex)
{
final int responseCode = response.getStatus();
s_logger_error.error("status code: " + responseCode);
}
Этот код отлично работает, если я запускаю его как приложение на локальном компьютере. Но когда мы размещаем его на сервере причалов, UI получает правильный ответ об ошибке (в моем случае 409
), но в этом методе он регистрируется как 200
.
[Изображение с удаленной отладки, где он показывает status=200
но в ответ он 409
]
Может кто-нибудь помочь, чтобы выяснить, почему это изменение в коде ответа?
Я использую sprint 1.1.7.RELEASE spring boot version и jetty-distribution-9.2.10.v20150310.
Где установлен код 409 статус? Возможно, он установлен после того, как статус HandlerInterceptor.afterCompletion() – medvedev1088
409 установлен до вызова HandlerInterceptor.afterCompletion(). – subhashlg26
Вы реализовали «HandlerInterceptor» или подкласс одной из реализаций? – Leon