Установите время ожидания чтения для проблемы с веб-сервисом

#spring-boot #webservicetemplate

Вопрос:

Я использую WebServiceTemplate Spring для использования веб-службы SOAP, для ответа на которую требуется более 1 минуты. Время чтения по умолчанию на WebServiceTemplate составляет 60 секунд.

Чтобы изменить и расширить свойство readtimeout, я реализовал следующий код:

 WebServiceMessageSender[] senders = template.getMessageSenders();

        for (WebServiceMessageSender sender : senders) {
           HttpUrlConnectionMessageSender httpComponentsMessageSender =(HttpUrlConnectionMessageSender) sender;
                httpComponentsMessageSender.setReadTimeout(Duration.ofSeconds(300));

        }
 

Теперь запрос не завершается через 60 секунд. Но даже если служба SOAP ответит через 120 секунд, запрос останется в ожидании и через 300 секунд выдаст исключение java.net.SocketTimeoutException: Время ожидания чтения истекло.

Прямо сейчас я просто тестирую макет сервера с конфигурацией сетевой задержки. Если я удалю задержку и удалю свойство ReadTimeout, все будет работать нормально.

Ты хоть представляешь, что я делаю не так?