如何处理防火墙设置的连接时间不够长导致clientAbortException的问题

djwsunjava 2008-10-28 12:35:25
JSP+tomcat+oracle配置,中间有防火墙,从一个JSP页面发送一个请求,服务器会根据请求计算生成excel报表,计算过程需要8-10分钟,然后返回结果文件供客户端下载,这个过程中,浏览器一直处于等待状态,但防火墙有五分钟的连接限制,如果五分钟内没有再次发送,则认为是不活动的,导致的结果是客户端没有办法收到服务器返回的结果。然后服务器上会显示:ClientAbortException错误。在没有防火墙的情况下,客户端是可以正常取得下载文件的。如何解决,大家帮帮忙。
...全文
409 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
福&缘 2008-10-28
  • 打赏
  • 举报
回复
多线程试试~
tiyuzhongxin789 2008-10-28
  • 打赏
  • 举报
回复
1、降低计算时间
2、调整防火墙的连接限制
java__king 2008-10-28
  • 打赏
  • 举报
回复
调下防火墙的连接限制就OK啦.
djwsunjava 2008-10-28
  • 打赏
  • 举报
回复
to huihui0103:
有没有什么办法可以解决?
djwsunjava 2008-10-28
  • 打赏
  • 举报
回复
你说的很对。谢谢。
huihui0103 2008-10-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 djwsunjava 的回复:]
我使用ajax,在页面A提交后,调用ajax,使用setinterval每一分钟向服务器发送一次连接请求,这个连接请求跟页面A的请求不一样(不是重新请求其计算),只是简单的为了保持连接。但还是没有用。仍然报同样的错误
[/Quote]

其实你这已经是多次请求了 跟原先的请求没有关系 自然会中断
djwsunjava 2008-10-28
  • 打赏
  • 举报
回复
安全起见,客户是不会关闭防火墙的,也不会调整防火墙的连接时间限制。他们要求我们通过技术的方法去解决,因为客户的防火墙不是只针对一个系统。有很多的系统都是这样的。
耶律火柴 2008-10-28
  • 打赏
  • 举报
回复
1、降低计算时间
2、调整防火墙的连接限制
随风醉舞 2008-10-28
  • 打赏
  • 举报
回复
一般来说,俺们都是关闭防火墙的
djwsunjava 2008-10-28
  • 打赏
  • 举报
回复
我使用ajax,在页面A提交后,调用ajax,使用setinterval每一分钟向服务器发送一次连接请求,这个连接请求跟页面A的请求不一样(不是重新请求其计算),只是简单的为了保持连接。但还是没有用。仍然报同样的错误
liushui05 2008-10-28
  • 打赏
  • 举报
回复
计算的过程可以这样:
在jsp或servlet中开启一个线程去完成计算功能。计算结束后可以把结果存储到一个随即文件中。
该随机文件的文件名你需要记录,如果5分钟没有完成计算,就赶紧把页面显示出来,页面显示到客户端之后告诉用户正在运算,请等待。。此页面需要你把刚才的那个随即文件名送过来,以便回传。
在显出的页面里面写js代码,再次把url定向到服务器端url,要把随即文件命送回去。
该服务器端URL执行检查上次运算是否结束,如果结束,则从随即文件中取出结果显示。如果没有计算完,继续上面的步骤,直到结果出来。结果取出后,把临时文件删除掉。

我以前做过类似你这样的东西,但是不是10分钟,而是40多秒,而平台只允许10秒钟。我就是这样解决的。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧