Utilizzo il framework MVC a molla. Voglio registrare gli stati degli errori ogni volta che viene lanciata un'eccezione, quindi il metodo afterCompletion
viene utilizzato in HanlderInterceptor
.HandlerInterceptor.afterCompletion() in primavera MVC modifica il codice di risposta
@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);
}
Questo codice funziona correttamente se lo eseguo come applicazione sul computer locale. Ma quando lo ospitiamo sul server jetty, l'interfaccia utente riceve la risposta corretta (nel mio caso 409
), ma in questo metodo viene registrato come 200
.
[Immagine da debug remoto dove mostra status=200
ma in risposta è 409
]
Qualcuno può aiutare a capire il motivo per cui non v'è un cambiamento nel codice di risposta?
Sto usando sprint 1.1.7.RELEASE versione di avvio a molla e jetty-distribution-9.2.10.v20150310.
casi in cui è impostato il codice 409 di stato? È possibile che sia impostato dopo che HandlerInterceptor.afterCompletion() – medvedev1088
409 viene impostato prima che venga chiamato HandlerInterceptor.afterCompletion(). – subhashlg26
Hai implementato 'HandlerInterceptor' o sottoclasse una delle implementazioni? – Leon