How to configure Idle Timeout (request timeout) on jetty embedded

124 Views Asked by At

Request fail with this exception

java.util.concurrent.TimeoutException: Idle timeout expired: 30002/30000 ms
    at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167)
    at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
    at java.base/java.lang.Thread.run(Thread.java:1589)

How to configure this default 30 seconds timeout?

1

There are 1 best solutions below

0
apflieger On

The default timeout can be configured on the Connector

Server server = new Server();
ServerConnector connector = new ServerConnector(server);
connector.setIdleTimeout(Duration.ofMinutes(5).toMillis());
server.addConnector(connector);

Be careful to not pass connection related arguments to new Server(), like port or InetSocketAddress, otherwise, the Server constructor creates a connector that won't have the IdleTimeout you want. Instead, pass the port or InetSocketAddress to the connector yourself.