Настройка соединения tomcatUploadTimeout в Spring Boot - PullRequest
0 голосов
/ 14 ноября 2018

Я хочу попробовать установить свойство 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 здесь не очень полезны.

1 Ответ

0 голосов
/ 14 ноября 2018

Нет необходимости угадывать, какие свойства поддерживаются, поскольку все они перечислены в приложении в справочной документации .Как вы можете надеяться, нет никаких свойств для настройки времени ожидания загрузки соединения или для включения времени ожидания загрузки на Connector.Это означает, что эти свойства должны быть настроены программно.

Вы можете настроить Connector программно, используя специфичные для Tomcat 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);
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...