长时间运行报告会导致网络超时如何抛出异常?

时间:2012-03-01 01:31:14

标签: java servlets jsf-2 richfaces websphere

我正在调用第三方报告api来运行报告。 api接受HttpRequest和Repsonse并将报告写入响应。在某些情况下,这些报告需要很长时间才能运行(并且会发生网络超时(5分钟),导致浏览器弹出窗口保持空白。未找到"页面错误"或任何其他类型的错误是曾经展示过。

客户端要求检测网络超时已发生并在窗口中显示错误页面。我通过论坛搜索,我看到很多关于会话超时。这不是会话超时。任何想法如何强制我自己的超时并在我选择的时间后重定向到错误页面?

我正在使用JSF 2 / Richfaces 4.0 / Webshpere 7

一个快速说明。我无法改变要求。我必须调用此api,我必须显示错误。我无法切换到保持连接活动的解决方案或使用任何类型的推送

1 个答案:

答案 0 :(得分:0)

我认为您需要的是通过客户端代码处理连接超时。您可以通过ajax进行API调用并配置可接受的超时值以满足要求。 这是我从谷歌搜索的一个参考,也许它会有所帮助。Handling timeouts gracefully in AJAX using client-side code

添加注释:你可以简单地使用setTimeout(handler,300000)并检查处理程序中的api返回值,如果仍未返回,则调用window.location.href ='你的redireced url'。