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;
}