Как зарегистрировать тело запроса перед его обработкой с помощью CommonsRequestLoggingFilter?JAVA

Программисты JAVA общаются здесь
Anonymous
Как зарегистрировать тело запроса перед его обработкой с помощью CommonsRequestLoggingFilter?

Сообщение Anonymous »

Код: Выделить всё

CommonsRequestLoggingFilter
работает нормально при регистрации тел входящих запросов. Однако он регистрирует их только после завершения обработки. Итак, когда я регистрирую тело ответа, оно предшествует телу запроса. Я хотел бы знать, есть ли способ зарегистрировать запрос еще до его обработки.

Еще одна вещь, которую я хотел бы упомянуть, это то, что CommonsRequestLoggingFilter на самом деле знает, когда запрос получен, он регистрирует сообщение типа «Запрос получен в...». Однако этот журнал не содержит тела запроса. После обработки сообщения оно регистрирует почти точную информацию с полезной нагрузкой.

Моя конфигурация для CommonsRequestLoggingFilter следующая. В нем нет ничего особенного.

Код: Выделить всё

@Bean
public CommonsRequestLoggingFilter requestLoggingFilter() {
CommonsRequestLoggingFilter loggingFilter = new CommonsRequestLoggingFilter();
loggingFilter.setIncludeClientInfo(true);
loggingFilter.setIncludeQueryString(true);
loggingFilter.setIncludePayload(true);
return loggingFilter;
}
Примечание. Видимо, есть причина для упомянутого выше поведения. Говорят, что getContentAsByteArray не может быть вызван до тех пор, пока не будет вызван getInputStream или getReader. Этот метод вызывается внутри регистратора. Я не знаю, что с этим делать. Означает ли это, что раньше невозможно зарегистрировать запрос?

Вернуться в «JAVA»