Java Web服务器的out.flush()出现问题

Java Web服务器的out.flush()出现问题,java,apache,jsp,tomcat,flush,Java,Apache,Jsp,Tomcat,Flush,我在jsp中使用out.flush()定期更新浏览器中某些执行的结果。这是一个很长的执行过程,大约10分钟,我不希望浏览器看起来像是永远在等待。(它还可以避免超时错误) 当直接连接到tomcat端口时,它工作正常,但当我通过apache web服务器时,它不工作(可能是因为刷新现在被发送到web服务器,而web服务器在某些缓冲区被填满之前不会刷新) 你知道我怎样才能实现连接到tomcat端口,但通过web服务器的相同结果吗 我正在寻找一个简单的解决方案(如果可能的话),我的意思不是ajax或在t

我在jsp中使用
out.flush()
定期更新浏览器中某些执行的结果。这是一个很长的执行过程,大约10分钟,我不希望浏览器看起来像是永远在等待。(它还可以避免超时错误)

当直接连接到tomcat端口时,它工作正常,但当我通过apache web服务器时,它不工作(可能是因为刷新现在被发送到web服务器,而web服务器在某些缓冲区被填满之前不会刷新)

你知道我怎样才能实现连接到tomcat端口,但通过web服务器的相同结果吗

我正在寻找一个简单的解决方案(如果可能的话),我的意思不是ajax或在tomcat中启动一个新线程,然后定期刷新浏览器,因为它们意味着很多更改

提前感谢。

将时间增加到10分钟

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 600

中有一个配置参数可以解决此问题

选项为:
JkOptions+FlushPackets


设置此选项后,Apache web服务器将刷新它从Tomcat接收到的任何内容。

但是浏览器将等待10分钟,没有任何更改。我想避免它永远等待的影响。如果我定期刷新,我在apache web服务器和tomcat之间没有超时问题。apache超时只需要高于刷新间隔。因此,假设我每20秒刷新一次,apache应该有什么超时?超过20秒,默认为60秒。我无法更改apache配置,但我将尝试完成更改并更新。让我们假设我把21。需要30秒才能呈现的页面将超时?(此apache中还有许多其他应用程序可能会受到影响)正确,很高兴它能为您工作。由于这会“在从Tomcat接收到每个AJP数据包块后刷新Apache的连接缓冲区”,因此对性能的影响可能是巨大的。如果您遇到这种情况,那么显而易见的措施当然是提取长时间运行的操作,并为此设置一个专用的Tomcat端点(其余部分禁用
FlushPackets
)。