TomcatEmbeddedServletContainerFactory is missing in Spring Boot 2

前端 未结 3 1397
一向
一向 2020-12-04 15:34

I have Spring Boot application version 1.5.x, which uses org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory, I\'m trying to

3条回答
  •  时光说笑
    2020-12-04 15:39

    The class has been removed and replaced by org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory For more info check: Spring-Boot-2.0-Migration-Guide, which says:

    In order to support reactive use cases, the embedded containers package structure has been refactored quite extensively. EmbeddedServletContainer has been renamed to WebServer and the org.springframework.boot.context.embedded package has been relocated to org.springframework.boot.web.server. Correspondingly, EmbeddedServletContainerCustomizer has been renamed to WebServerFactoryCustomizer.

    For example, if you were customizing the embedded Tomcat container using the TomcatEmbeddedServletContainerFactory callback interface, you should now use TomcatServletWebServerFactory and if you were using an EmbeddedServletContainerCustomizer bean, you should now use a WebServerFactoryCustomizer bean.

    I had the problem that I needed to sent bigger request, then the default size allowed:

    @Bean
        public TomcatServletWebServerFactory containerFactory() {
            return new TomcatServletWebServerFactory() {
                protected void customizeConnector(Connector connector) {
                    int maxSize = 50000000;
                    super.customizeConnector(connector);
                    connector.setMaxPostSize(maxSize);
                    connector.setMaxSavePostSize(maxSize);
                    if (connector.getProtocolHandler() instanceof AbstractHttp11Protocol) {
    
                        ((AbstractHttp11Protocol ) connector.getProtocolHandler()).setMaxSwallowSize(maxSize);
                        logger.info("Set MaxSwallowSize "+ maxSize);
                    }
                }
            };
    
        }
    

提交回复
热议问题