我有一个J2EE应用程序,它有一个允许上传文件的REST端点。该应用程序部署在linux服务器中的jboss上。
当我们的服务器中的文件小于4MB时,一切都很好,但当我上传一个大文件时,我总是得到:
org.apache.http.NoHttpResponseException: The target server failed to respond不过,当我在本地测试(REST客户端调用在我机器上运行的本地服务器)时,一切都运行得很好。我甚至可以上传到10mb+,没有遇到任何异常。但是当我要通过REST客户端访问linux服务器,并且文件大于4mb时,我会得到那个NoHttpResponseException。我尝试过通过curl命令调用linux服务器内部的upload端点,它正在工作。
所以,我猜这不是我的代码或jboss设置中特定的东西,而是一个问题/配置(可能是服务器超时设置?)在linux服务器上?有谁能给我指个方向吗?
感谢大家的帮助。如果您需要更多信息,请让我知道。谢谢!
发布于 2016-01-10 10:45:06
这很可能是由于您的服务器和执行大型上载的远程客户端之间的某些网络设备或配置造成的,如果您告诉我们通过本地curl的大型上载在您的服务器和本地开发环境中都有效。
由于除了应用程序代码之外,您没有描述您的设置,因此我们只能提供以下帮助:
keep-alive,并确保所有负载均衡器和类似设备都会尊重请求时长/不会杀死TCP?基于HTTP的网络设备极不可能没有Request Timeout响应,因此请查找TCP问题。Request Timeout得到任何响应,但这也可能是它。(A)服务器上缺少状态防火墙规则
(B)您没有绑定到正确的网络接口,如服务器上的0.0.0.0,并且仅绑定到环回/本地接口上
(C)出站传输的不良无状态规则,如缺少网络ACL规则:入站而不是出站
https://stackoverflow.com/questions/34417854
复制相似问题