Spring Boot –組み込みTomcatでmaxSwallowSizeを構成します
Spring Bootでは、common application propertiesを介して組み込みTomcatmaxSwallowSize
を構成することはできません。server.tomcat.*.maxSwallowSize
のようなオプションはありません。
溶液
これを修正するには、TomcatEmbeddedServletContainerFactory
Beanを宣言し、maxSwallowSize
を次のように構成する必要があります。
//... import org.apache.coyote.http11.AbstractHttp11Protocol; import org.springframework.boot.context.embedded.tomcat.TomcatConnectorCustomizer; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; private int maxUploadSizeInMb = 10 * 1024 * 1024; // 10 MB @Bean public TomcatEmbeddedServletContainerFactory tomcatEmbedded() { TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory(); tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> { // connector other settings... // configure maxSwallowSize if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol>)) { // -1 means unlimited, accept bytes ((AbstractHttp11Protocol>) connector.getProtocolHandler()).setMaxSwallowSize(-1); } }); return tomcat; }