如果用户尝试从我的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
。
我做错了什么?我应该如何设置此属性,还是有其他方法可以阻止长时间运行的文件上传超时?
答案 0 :(得分:2)
尚未检查过,但是看一下tomcat文档,您要修改的配置似乎是Connector的一个属性。
Connector有一个名为setAttribute的方法。所以我想你会用以下代码成功:
eventConfigureTomcat = { tomcat ->
tomcat.connector.setAttribute('disableUploadTimeout', true); //may 'true'
}
必须承认我自己无法测试此代码......
更新:根据@ Charles-Wood的说法,它必须设置为false
而不是true
。
PS:如果您发布有关如何重现问题的更多信息,我会试一试