我正在从jetty7.6迁移到jetty-9.2。我看到jetty连接的idletimeout默认值减少了10倍。
在jetty-7.6
<Set name="maxIdleTime">300000</Set>
在jetty-9.2中:
<Set name="idleTimeout"><Property name="http.timeout" default="30000"/></Set>
为什么这样?
正因为如此,我不断得到以下异常:
WARN:oejs.HttpChannel:qtp607635164-14195: Commit failed
java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:156)
at org.eclipse.jetty.io.IdleTimeout$1.run(IdleTimeout.java:50)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)..........
谢谢, Anuj
答案 0 :(得分:8)
将此内容放入${jetty.base}/start.ini
http.timeout=300000
这将恢复您以前的期望。
作为超时,它从默认的5分钟更改为30秒,因为这是大多数网站的更好选择。
答案 1 :(得分:0)
使用Jetty 9.4和HTTPS,上述解决方案不起作用。为了解决这个问题,我发现了一个没有出现在.ini文件中的未记录的设置:
jetty.ssl.idleTimeout=180000
将其添加到您的Jetty设置中。 start.d/<whatever>.ini
或start.ini
。
答案 2 :(得分:0)
正确的设置是
## Connector idle timeout in milliseconds
# jetty.ssl.idleTimeout=30000
这可以在ssl.mod文件中找到。