Tomcat 6で実行されているStrutsに基づくアプリケーションでHTTPPOSTリクエストの生の本体をログに記録しようとしています。SOに関する以前の投稿が1つ見つかりましたが、受け入れられたソリューションが正しく機能しません。場合。問題は、特定の場合にのみPOST本文をログに記録し、ログ記録後にStrutsに本文からパラメーターを解析させることです。現在、私が書いたフィルターでは、HttpServletRequestWrapperオブジェクトから本文を読み取ってログに記録できますが、その後、Strutsは解析するパラメーターを見つけることができないため、DispatchAction呼び出し(要求のパラメーターの1つに依存します)は失敗します。
StrutsとTomcatのソースコードを調べたところ、POST本体をバイト配列に格納し、その配列に基づいてStreamとReaderを公開するかどうかは問題ではないことがわかりました。パラメータを解析する必要がある場合、TomcatのRequestオブジェクトは、その時点ですでに読み取られている内部InputStreamにアクセスします。
この種のロギングを正しく実装する方法を知っている人はいますか?