Ich benutze Feder MVC Rahmen. Ich möchte Fehlerstatus protokollieren, wann immer eine Ausnahme ausgelöst wird, also afterCompletion
Methode wird in HanlderInterceptor
verwendet.HandlerInterceptor.afterCompletion() im Frühjahr MVC ändert Antwortcode
@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);
}
Dieser Code funktioniert gut, wenn ich dies als eine Anwendung auf dem lokalen Rechner ausführen. Aber wenn wir es auf dem Anlegestegserver hosten, erhält die Benutzeroberfläche die korrekte Fehlerantwort (in meinem Fall 409
), aber bei dieser Methode wird sie als 200
geloggt.
[Bild von Remote-Debug wo es status=200
zeigt aber in Reaktion ist es 409
]
Kann jemand helfen, herauszufinden, warum es Änderung des Antwortcode ist?
Ich verwende Sprint 1.1.7.RELEASE Springboot-Version und Jetty-Distribution-9.2.10.v20150310.
Wo ist 409-Statuscode gesetzt? Es ist möglich, dass es nach dem HandlerInterceptor gesetzt wird. AfterCompletion() – medvedev1088
409 Status wird festgelegt, bevor HandlerInterceptor.afterCompletion() aufgerufen wird. – subhashlg26
Haben Sie 'HandlerInterceptor' oder Unterklasse einer der Implementierungen implementiert? – Leon