我想尝试在Spring Boot 2中设置Tomcat connectionUploadTimeout属性。我java.net.SocketTimeoutException: null在服务器日志中得到一些不可复制的随机信息。
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秒请求仍在完成,没有任何超时。
在春天的文档是不是非常有帮助这里。
无需猜测支持哪些属性,因为所有属性均在参考文档的附录中列出。正如您希望看到的那样,没有用于配置连接上载超时或用于在上启用上载超时的属性Connector。这意味着必须以编程方式配置这些属性。
Connector
您可以Connector使用特定于Tomcat 的程序进行配置WebServerFactoryCustomizer:
WebServerFactoryCustomizer
@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); } }); }