1

我有一个在 Tomcat 和 Spring 3.0 上运行的基于 Java EE 的 Web 应用程序。我的网页发送删除大量记录的请求。当请求在后台运行时,我收到超时错误消息:“发生内部错误”。

我认为这是浏览器超时问题。有没有办法解决它?在 Tomcat 的 web.xml 中,会话超时设置为 30。

我是否需要使用一些 Ajax 回调而不是发布请求?

4

1 回答 1

2

你在Tomcat前面使用Apache HTTP web server吗?

有几层超时:

  1. 在 apache web 服务器级别(请参阅 mod_proxy 的超时设置,请参阅 mod_jk 的 worker.properties 文件)
  2. 在 tomcat 连接器级别(有关套接字超时,请参阅 tomcat conf/server.xml)。
  3. 在 web 应用程序会话过期级别(请参阅 tomcat webapps/WEB-INF/web.xml 会话超时设置
  4. 数据库超时 - 进行长时间的数据库查询时,发生数据库查询超时并将您吐出。

这是做什么:

  1. 确保您有正确的超时单位。有些事情使用秒,一些分钟,一些毫秒。确保你有正确的。
  2. 使用 tcpdump 和连接到 Tomcat 的 java 调试器查看超时发生的位置。Tcpdump 很有用,因为您可以查看在发生超时之前一直在进行的网络流量。Java 调试器很有帮助,因为您需要查看服务器级别的请求到底发生了什么。

从这些中,您可以找到超时的最终来源并使用该信息更新此票证。

于 2012-06-14T17:56:08.487 回答