Я пытаюсь зарегистрировать необработанное тело HTTP-запросов POST в нашем приложении на основе Struts, работающем на Tomcat 6. Я нашел один предыдущий пост на SO, который был несколько полезен, но принятое решение не работает должным образом в моем случае. Проблема в том, что я хочу регистрировать тело POST только в определенных случаях, и позволяют Struts анализировать параметры из тела после регистрации. В настоящее время в фильтре, который я написал, я могу читать и регистрировать тело из объекта HttpServletRequestWrapper, но после этого Struts не может найти какие-либо параметры для анализа, поэтому вызов DispatchAction (который зависит от одного из параметров из запроса) завершается неудачно.
Я немного покопался в исходном коде Struts и Tomcat и обнаружил, что не имеет значения, сохраню ли я тело POST в байтовом массиве и выставлю Stream и Reader на основе этого массива; когда параметры должны быть проанализированы, объект запроса Tomcat получает доступ к своему внутреннему InputStream, который к тому времени уже был прочитан.
У кого-нибудь есть идеи, как правильно реализовать этот вид журналирования?