首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >上传大文件会导致NoHttpResponseException

上传大文件会导致NoHttpResponseException
EN

Stack Overflow用户
提问于 2015-12-22 22:16:03
回答 1查看 585关注 0票数 3

我有一个J2EE应用程序,它有一个允许上传文件的REST端点。该应用程序部署在linux服务器中的jboss上。

当我们的服务器中的文件小于4MB时,一切都很好,但当我上传一个大文件时,我总是得到:

代码语言:javascript
运行
复制
org.apache.http.NoHttpResponseException: The target server failed to respond

不过,当我在本地测试(REST客户端调用在我机器上运行的本地服务器)时,一切都运行得很好。我甚至可以上传到10mb+,没有遇到任何异常。但是当我要通过REST客户端访问linux服务器,并且文件大于4mb时,我会得到那个NoHttpResponseException。我尝试过通过curl命令调用linux服务器内部的upload端点,它正在工作。

所以,我猜这不是我的代码或jboss设置中特定的东西,而是一个问题/配置(可能是服务器超时设置?)在linux服务器上?有谁能给我指个方向吗?

感谢大家的帮助。如果您需要更多信息,请让我知道。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-01-10 10:45:06

这很可能是由于您的服务器和执行大型上载的远程客户端之间的某些网络设备或配置造成的,如果您告诉我们通过本地curl的大型上载在您的服务器和本地开发环境中都有效。

由于除了应用程序代码之外,您没有描述您的设置,因此我们只能提供以下帮助:

  1. 您是否对请求设置了keep-alive,并确保所有负载均衡器和类似设备都会尊重请求时长/不会杀死TCP?基于HTTP的网络设备极不可能没有Request Timeout响应,因此请查找TCP问题。
  2. 您是否验证了本地计算机上没有按时间顺序的硬性超时设置?你似乎不太可能从一个来自HTTP服务器的Request Timeout得到任何响应,但这也可能是它。
  3. 你能验证较小的请求从远程位置工作吗?如果不是,那么它甚至可以像这样简单:

(A)服务器上缺少状态防火墙规则

(B)您没有绑定到正确的网络接口,如服务器上的0.0.0.0,并且仅绑定到环回/本地接口上

(C)出站传输的不良无状态规则,如缺少网络ACL规则:入站而不是出站

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34417854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档