我一直在尝试解决Java Web项目中一个非常烦人的问题。我们将Spring(3.1.4)与webflow(2.3.1)结合使用,并在Amazon Server上的Wildfly 11.0上运行。简而言之,远程服务器针对本地环境没有执行的任务给出504-超时错误。
特定页面导出.xls报告,该报告在内部进行数据库和其他应用REST API咨询方面的大量工作。此功能位于ManagedBean内部,如下所示:
@org.springframework.stereotype.Component
@Scope(value = "request")
public class ReportMB {
...
public void export(){
try{
// code goes here
// generates HttpServletResponse containing the report file
} catch (...) {...}
}
即使我选择要包含的数据太多,该报告仍在我的开发计算机中成功生成,尽管最多可能需要几分钟才能完成。当它在具有相同Wildfly版本和项目部署的远程服务器上运行时,我们将获得504-超时,并且在100秒以内的数据更少。
我已经检查了日志,甚至在本地调试了该过程,并且两种环境(本地和远程)都没有异常。您是否有任何线索为什么本地服务器要等到函数完成并且文件准备就绪而远程服务器却没有准备好为止,或者至少您对如何提高此请求的Wildfly / Spring超时容忍度有任何想法? (我见过许多更改部署超时的示例,但与请求超时无关)
谢谢。
答案 0 :(得分:0)
504将由负载平衡器而非应用程序服务器创建。增加负载均衡器的超时时间