#spring-boot
#весенняя загрузка
Вопрос:
Я пробую server.servlet.session.timeout
свойство, но тайм-аут, похоже, не работает. Я настроил простое загрузочное приложение:
application.properties
server.port=9595
server.servlet.session.timeout=60s
# Also tried server.servlet.session.timeout=1m
# Also tried to combine with server.servlet.session.cookie.max-age=60s
Типичная конфигурация SpringBoot:
@SpringBootApplication
public class SessionTimeoutDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SessionTimeoutDemoApplication.class, args);
}
}
и простой контроллер:
@RestController
public class SomeControler {
@PostMapping(value = "/data")
public ResponseEntity<String> postData(@RequestBody String body) throws InterruptedException {
Thread.sleep(300*1000); //wait 5 minutes
return ResponseEntity.accepted().build();
}
}
Затем попробуйте, как:
date; curl -d "This is the data" -H "Content-Type: application/json" -X POST http://localhost:9595/data; date
Приложение фактически ожидает 5 полных минут, а не тайм-аут через 1 минуту, как ожидалось
**Wed Apr 10 12:59:17 AEST 2019**
* About to connect() to localhost port 9595 (#0)
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 9595 (#0)
> POST /data HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost:9595
> Accept: */*
> Content-Type: application/json
> Content-Length: 16
>
* upload completely sent off: 16 out of 16 bytes
< HTTP/1.1 202
< Content-Length: 0
< Date: Wed, 10 Apr 2019 03:04:17 GMT
<
* Connection #0 to host localhost left intact
**Wed Apr 10 13:04:17 AEST 2019**
Может кто-нибудь понять, чего мне не хватает?
Спасибо.
Комментарии:
1. Где вы создаете сеанс? Боюсь, что с помощью кода, которым вы поделились, будет создан сеанс.
2. время ожидания сеанса не является временем ожидания соединения… Вы что-то путаете.
3. @M.Deinum: да, вы правы. Неправильный метод тестирования.