Servlet3.0+RequestDumpFilterでMergedWebXMLの大量のログ出力
Tomcat7+SAStrutsでJava Webアプリケーション構築をしています。
主にセキュリティ関連のパラメータ追加の兼ね合いでweb.xmlをServlet2.4からServlet3.0にしてみました。
すると、SAStrutsでの入出力パラメータをログ出力するRequestDumpFilterで、mergedWebXMLのコンテキスト設定値が大量にログ出力されるようになってしまいました。
あまりにも大量過ぎてログを追うのが出来ないレベルだったので対処法を探してみました。
調べたところ、以下のツイートを見つけました。
そんなわけで、リプで聞いてみました。
@kawachitafs 突然すみません。同じくSAStruts+Tomcat7でMergedWebXMLのログが大量に出て困ってます。よろしければ対処法を教えていただけませんか?web.xmlのmetadata-complete属性など色々試しましたが問題解消できませんでした…
2013-06-15 02:20:44 via twicca to @kawachitafs
@kawachitafs リプありがとうございます。metadata-complete="true"は試したもののうまく行かなかったです…もしかしたらキャッシュの消し忘れやtomcat再始動ができていないなど初歩的な間違いをしているかもしれないので、週明けにもう一度試してみます!
@tmftake 失礼しました。はじめのリプみるとそのようですね。他に特に思い当たるところはないですが、週明けに他に何かひっかりそうな点があったか確認してみます。
2013-06-16 00:32:03 via HootSuite to @tmftake
@kawachitafs 色々試したものの変化無いので、RequestDumpFilterの初期化パラメータbefore/afterContextAttributeをfalseにする事でcontextのログ出力を丸々削りました。手荒いですがこれで行きます。ありがとうございました。
2013-06-19 19:52:44 via twicca to @kawachitafs
web-appタグにmetadata-complete="true"を付けることでweb.xmlのマージを抑止、ログ出力もなくなる、、とのことでしたが、相変わらずログが出てしまいます。
諦めてRequestDumpFilterを独自拡張しよう…とRequestDumpFilterのソース()を眺めたところ、beforeContextAttribute/afterContextAttribute初期化パラメータでコンテキストのログ出力有無を制御できることがわかりました。
とりあえずこれにfalseにすることで対処。