我的应用程序正在使用Struts 1.x并且它正在WAS上运行..
所有动作类都正常工作,除了我点击一个按钮和一个动作(预计在1小时内完成)被调用然后它开始执行..问题出现在几分钟后调用相同的动作任何按钮触发或任何代码更改。这种情况每隔几分钟就会发生n次......
如果有人对此有任何疑问,请告诉我。
答案 0 :(得分:0)
要求 1小时完成的请求不正常:您应该重新设计此功能。
简而言之,您遇到此问题是因为请求需要很长时间才能完成。有关问题原因的技术说明,请参阅Why does the user agent resubmit a request after server does a TCP reset?
解决方案:创建一个单独的线程(或者如果可能的话,并行线程池)来处理长时间运行的计算,并立即发送一个响应页面,说“请求已接受”。此页面还可以使用JavaScript定期发送“它已完成吗?”请求到服务器。您还应该提供一种机制来查询待处理的请求,这样关闭浏览器的用户无需等待最终的“是,已完成!”响应可以在他们想要的时候获得结果。