【问题标题】:Getting error 504 in test server but not locally在测试服务器中出现错误 504 但不是在本地
【发布时间】:2019-01-11 15:02:44
【问题描述】:

我一直在尝试解决 Java Web 项目中一个非常烦人的问题。我们使用 Spring (3.1.4) 和 webflow (2.3.1),在 Amazon 服务器上运行 Wildfly 11.0。简而言之,远程服务器为本地环境没有的任务提供 504 - Timeout 错误。

一个特定的页面导出一个 .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 - Timeout,并且在 100 秒内的数据要少得多。

我已经检查了日志,甚至调试了进程(本地),两种环境(本地和远程)都没有出现任何异常。您是否知道为什么本地服务器要等到函数完成并且文件准备好但远程服务器没有,或者至少您知道如何增加此请求的 Wildfly/Spring 超时容限? (我见过很多更改部署超时但与请求超时相关的例子)

提前谢谢你。

【问题讨论】:

    标签: spring wildfly http-status-code-504


    【解决方案1】:

    504 将由负载均衡器而不是应用服务器创建。增加负载均衡器的超时时间

    【讨论】:

    • huu,当然,威尔,我会试试这个,然后回来反馈。谢谢!
    • Perfect Will T,此配置立即生效。对于需要增加此超时值的用户,请查看this official post
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    • 2019-04-11
    • 1970-01-01
    相关资源
    最近更新 更多