我想防止SocketTimeoutException
如果用户尝试从我的 Grails Web 应用程序中的上传表单上传大文件,大约 1 分钟后就会发生这种情况。我知道这是 Tomcat 的问题而不是 Grails 的问题,但我在修改方面有点困难server.xml
使用eventConfigureTomcat
事件块中_Events.groovy
.
根据Tomcat 文档 http://tomcat.apache.org/tomcat-7.0-doc/config/http.html有一个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
关于该连接器的实现。
我究竟做错了什么?我应该如何设置此属性,或者是否有其他方法可以防止长时间运行的文件上传超时?
没查过,不过看了一下tomcat的文档,你要修改的配置好像是Connector的一个属性。
连接器有一个方法称为设置属性 https://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/connector/Connector.html#setAttribute%28java.lang.String,%20java.lang.Object%29。所以我想你会成功使用以下代码:
eventConfigureTomcat = { tomcat ->
tomcat.connector.setAttribute('disableUploadTimeout', true); //may 'true'
}
必须承认我自己无法测试这段代码......
更新:根据@Charles-Wood,它必须设置为false
并不是true
.
PS:如果您发布有关如何重现问题的更多信息,我会尝试一下
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)