gpt4 book ai didi

java - Spring Boot中设置tomcat连接上传超时

转载 作者:行者123 更新时间:2023-11-28 22:47:36 46 4
gpt4 key购买 nike

我想尝试设置Tomcat connectionUploadTimeout Spring Boot 2 中的属性。我在服务器日志中收到一些随机的不可重现的 java.net.SocketTimeoutException: null

它来自请求输入流,因此如果我可以将此属性设置为非常短的持续时间,那么我应该能够在本地复制它。

我已经尝试过

server.disableUploadTimeout=false
server.connectionUploadTimeout=5000

server.tomcat.disableUploadTimeout=false
server.tomcat.connectionUploadTimeout=5000

server.tomcat.disable-upload-timeout=false
server.tomcat.connection-upload-timeout=5000

但我的 15 秒请求仍然在本地完成,没有任何超时。

Spring docs在这里不是很有帮助。

最佳答案

无需猜测支持哪些属性,因为它们都列在 an appendix in the reference documentation 中。正如您所看到的,没有用于配置连接上传超时或在 Connector 上启用上传超时的属性。这意味着必须以编程方式配置这些属性。

您可以使用 Tomcat 特定的 WebServerFactoryCustomizer 以编程方式配置 Connector:

@Bean
public WebServerFactoryCustomizer<TomcatServletWebServerFactory> tomcatCustomizer() {
return (tomcat) -> tomcat.addConnectorCustomizers((connector) -> {
if (connector.getProtocolHandler() instanceof AbstractHttp11Protocol) {
AbstractHttp11Protocol<?> protocolHandler = (AbstractHttp11Protocol<?>) connector
.getProtocolHandler();
protocolHandler.setDisableUploadTimeout(false);
protocolHandler.setConnectionUploadTimeout(5000);
}
});
}

关于java - Spring Boot中设置tomcat连接上传超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53307096/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com