Camel HTTP端点为大型File主体抛出NoHttpResponseException

时间:2017-06-29 06:53:15

标签: java http apache-camel

尝试使用来自Camel端点的REST API将文件上传到服务器。 以下是考虑中的骆驼端点的一部分

<camel:setBody>
 <camel:simple>${header.objectdata.getData}</camel:simple><!-- 2mb file as String -->
</camel:setBody>
<camel:setHeader headerName="CamelHttpMethod">
 <camel:constant>PUT</camel:constant>
</camel:setHeader>
<camel:recipientList id="ml-rest">
  <camel:simple>{URL_HERE}</camel:simple>
</camel:recipientList>

上述端点适用于较小的文件。但对于~2mb文件,它会抛出

org.apache.commons.httpclient.NoHttpResponseException: The server localhost failed to respond
at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1976)
at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)...

我尝试使用POSTMAN将相同的文件上传到服务器上(不是通过代码,驼峰),它运行正常。

尝试设置SO_TIMEOUT选项,但奇怪的是它显示上限为30秒。小于30的设置值似乎有效,但忽略大于30秒。我注意到这是基于以下日志语句出现的时间差异。

...
[t1] Request body sent
[t2] Closing the connection

0 个答案:

没有答案