TomcatでPOSTサイズが2Mを超えるとき

今Apache Proxy経由でTomcatに大容量のファイルをPOSTすると

 [error] (103)Software caused connection abort: proxy: pass request body failed to 127.0.0.1:8080 (localhost)

というエラーが出てしまっていて、その原因究明を行っている際に調べたこと。(Tomcat側では正常にレスポンスを返しているみたい、というところまではわかった。)

TomcatでPOSTサイズが2Mを超えると、デフォルトの設定のままでは次のような例外が発生するようです。

java.lang.IllegalStateException: Post too large

その場合は

server.xmlのConnector要素にmaxPostSizeパラメータを追加します。

4MBにする場合は以下のとおり。

    <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
               connectionTimeout="20000"
               redirectPort="8443" maxPostSize="4194304" />

なおこれはテキストなどのPOSTデータのサイズでして、multipart/form-dataのサイズ制限とは無関係のようです。