2014-08-28 133 views
7

我正在从jetty7.6迁移到jetty-9.2。我看到码头连接的idletimeout默认值减少了10倍。Jetty IdleTimeout

在码头 - 7.6

<Set name="maxIdleTime">300000</Set> 

在码头 - 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

回答

8

把这个在您的${jetty.base}/start.ini

http.timeout=300000 

,将恢复此前的预期。

由于这是大多数网站的更好选择,它已从默认的5分钟更改为30秒。

+0

我在jetty-http.xml中看到:Set name =“idleTimeout”>但是,当我试图设置java属性“http.timeout” 300000.它仍然显示与“30000(旧值)”相同的错误。为什么它没有设置为新值(为什么不能从java属性中更改)? – 2014-09-02 06:37:44

+1

这不是一个java'System.setProperty',它是一个'jetty-start' /'jetty-xml'启动属性。使用'start.jar --list-config'捕获输出,然后编辑你的问题以包含这个输出。 – 2014-09-02 13:29:06

+0

仅供参考,此属性现在是'jetty.http.timeout' – Golly 2017-09-02 23:29:20

0

使用Jetty 9.4和HTTPS,上述解决方案不起作用。为了解决这个问题,我发现没有出现在.ini文件的无证设置:

jetty.ssl.idleTimeout=180000

它添加到您的码头设置。 start.d/<whatever>.inistart.ini

0

正确的设置

## Connector idle timeout in milliseconds 
 
# jetty.ssl.idleTimeout=30000

这可以在ssl.mod文件中找到。