如何在 spring boot 2 中设置 max-swallow-size?
How to set max-swallow-size in spring boot 2?
我试图在升级到 springboot 版本 2 时在 springboot 微服务中将 max-swallow-size 属性 of tomcat 设置为 -1;我之前的代码可以正常工作,但在升级过程中一些 类 发生了变化,所以它停止工作了。
我尝试用两种方式设置 属性,但都不起作用;
- 有服务配置
@Bean
public ServletWebServerFactory servletContainerFactory() {
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
if(connector.getProtocolHandler() instanceof AbstractHttp11Protocol) {
logger.debug("Setting maxSwallowSize for server connector as "+maxSwallowSize);
((AbstractHttp11Protocol <?>) connector.getProtocolHandler()).setMaxSwallowSize(maxSwallowSize);
}
}
});
return factory;
}
在控制流中,我可以看到打印的调试行,但它没有生效,因为端点响应是 502(错误的网关)而不是 400
第二种方式:
2. 通过 application.properties 文件 属性
server.tomcat.max-swallow-size=-1
这也不兑现。
现在,我如何验证 属性 值是否已实际设置?
或者我是否以正确的方式设置值?
这个新 class 解决了我的问题
@Component
public class TomcatCustomizer implements
WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
@Override
public void customize(TomcatServletWebServerFactory factory) {
factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
if(connector.getProtocolHandler() instanceof AbstractHttp11Protocol) {
((AbstractHttp11Protocol <?>) connector.getProtocolHandler()).setMaxSwallowSize(maxSwallowSize);
}
}
});
}
}
并且我在 spring boot 2.0
中使用了更新的属性
spring.servlet.multipart.max-file-size= XX MB
spring.servlet.multipart.max-request-size= YY MB
我试图在升级到 springboot 版本 2 时在 springboot 微服务中将 max-swallow-size 属性 of tomcat 设置为 -1;我之前的代码可以正常工作,但在升级过程中一些 类 发生了变化,所以它停止工作了。
我尝试用两种方式设置 属性,但都不起作用;
- 有服务配置
@Bean
public ServletWebServerFactory servletContainerFactory() {
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
if(connector.getProtocolHandler() instanceof AbstractHttp11Protocol) {
logger.debug("Setting maxSwallowSize for server connector as "+maxSwallowSize);
((AbstractHttp11Protocol <?>) connector.getProtocolHandler()).setMaxSwallowSize(maxSwallowSize);
}
}
});
return factory;
}
在控制流中,我可以看到打印的调试行,但它没有生效,因为端点响应是 502(错误的网关)而不是 400
第二种方式: 2. 通过 application.properties 文件 属性
server.tomcat.max-swallow-size=-1
这也不兑现。
现在,我如何验证 属性 值是否已实际设置? 或者我是否以正确的方式设置值?
这个新 class 解决了我的问题
@Component
public class TomcatCustomizer implements
WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
@Override
public void customize(TomcatServletWebServerFactory factory) {
factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
if(connector.getProtocolHandler() instanceof AbstractHttp11Protocol) {
((AbstractHttp11Protocol <?>) connector.getProtocolHandler()).setMaxSwallowSize(maxSwallowSize);
}
}
});
}
}
并且我在 spring boot 2.0
中使用了更新的属性spring.servlet.multipart.max-file-size= XX MB
spring.servlet.multipart.max-request-size= YY MB