大文件上载期间的Grails连接超时

时间:2014-07-10 07:13:04

标签: tomcat grails file-upload timeout

如果用户尝试从我的Grails Web应用程序中的上传表单上传大文件,我想阻止大约1分钟后发生的SocketTimeoutException。我知道这是一个Tomcat而不是Grails的东西,但是我在server.xml中使用eventConfigureTomcat事件块修改_Events.groovy时有点挣扎。

根据tomcat docs,我应该在连接器上将disableUploadTimeout属性设置为true,但是当我在eventConfigureTomcat块中尝试此属性时,我得到我的应用启动时出现以下错误:

| Running Grails application
| Error Server failed to start: No such property: disableUploadTimeout for class: org.apache.catalina.connector.Connector (Use --stacktrace to see the full trace)

_Events.groovy的内容如下所示:

eventConfigureTomcat = { tomcat ->
    tomcat.connector.disableUploadTimeout = "true"
}

并且该错误确实有意义 - 根据javadoc,该连接器实现上没有属性disableUploadTimeout

我做错了什么?我应该如何设置此属性,还是有其他方法可以阻止长时间运行的文件上传超时?

1 个答案:

答案 0 :(得分:2)

尚未检查过,但是看一下tomcat文档,您要修改的配置似乎是Connector的一个属性。

Connector有一个名为setAttribute的方法。所以我想你会用以下代码成功:

eventConfigureTomcat = { tomcat ->
    tomcat.connector.setAttribute('disableUploadTimeout', true); //may 'true'
}

必须承认我自己无法测试此代码......

更新:根据@ Charles-Wood的说法,它必须设置为false而不是true

PS:如果您发布有关如何重现问题的更多信息,我会试一试