首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >uploadPart失败,无法执行HTTP请求:连接重置

uploadPart失败,无法执行HTTP请求:连接重置
EN

Stack Overflow用户
提问于 2014-08-14 10:46:29
回答 2查看 8.8K关注 0票数 5

我正在尝试使用多部分上传AWS S3 java执行文件上传(我使用的是SDK1.8.1)。我能够成功地执行上传。

但是,我断断续续地得到了这个例外。

7月31日,2014年4:39:38 AM com.amazonaws.http.AmazonHttpClient executeHelper信息:无法执行HTTP请求:连接重置java.net.SocketException:连接重置在java.net.SocketInputStream.read(SocketInputStream.java:121) at sun.security.ssl.InputRecord.readFully(InputRecord.java:312) at sun.security.ssl.InputRecord.read(InputRecord.java:350) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927)在sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:884) at sun.security.ssl.AppInputStream.read(AppInputStream.java:102) at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:166) at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:90) at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:281) at org.apache.http.impl.conn.DefaultHttpResponseParser.org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:62) at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:254) org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:289) at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:252) at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:191 parseHead(DefaultHttpResponseParser.java:92))在org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:300) at com.amazonaws.http.protocol.SdkHttpRequestExecutor.doReceiveResponse(SdkHttpRequestExecutor.java:66) at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:127) at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:717) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:522) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:402) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:245) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3711) at com.amazonaws.services.s3.AmazonS3Client.uploadPart(AmazonS3Client.java:2809) at cloud<-filename->.writeContent(<-filename->.java:<-linenumber->)

在以下代码中

代码语言:javascript
运行
复制
try {
                  _partETags.add(_s3.uploadPart(uploadPartReq).getPartETag());
      } catch (AmazonClientException e) {
                  System.out.println("Amazon service error. Retrying...");
                  printException(e);
      } catch (Exception e) {
                  printException(e);
                  throw new UserException("Received an exception while performing upload part");
      }

如果我看一下文档化,它会说uploadPart函数只会抛出两个类AmazonClientException和AmazonServiceException。

链接:http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3.html#uploadPart(com.amazonaws.services.s3.model.UploadPartRequest)

..。UploadPartResult uploadPart(UploadPartRequest request)抛AmazonClientException,AmazonServiceException .抛出: AmazonClientException --如果在进行请求或处理响应时客户端遇到任何错误。AmazonServiceException --如果在处理请求时亚马逊S3中发生了任何错误。..。

但是,我收到了不同的例外。

我有以下问题

  • 这是否是一种预期的行为,如果不是,我如何解决这个问题?
  • 为什么我的try catch块不能捕获这个异常?
  • 在AmazonClient或AmazonServiceException的情况下,是建议我们重新尝试上传,还是认为这些都是不可恢复的错误?
EN

回答 2

Stack Overflow用户

发布于 2015-06-27 16:24:10

这是来自AmazonS3Client的一条日志消息(在信息级别),它告诉您存在一个瞬态网络错误。默认情况下,AmazonS3Client捕获这类异常并为您重试上传。您可以通过ClientConfiguration来调整这种行为。如果在配置的重试次数之后,上传仍未成功,则将抛出一个AmazonClientException,如文档所示。

票数 1
EN

Stack Overflow用户

发布于 2018-08-13 12:58:17

当我试图通过eclipse上传我的项目AWS lambda时,我遵循了教程链接中的步骤:

https://examples.javacodegeeks.com/software-development/amazon-aws/tutorial-use-aws-lambda-s3-real-time-data-processing/

但是,在Eclipse中执行“将Lambda代码部署到AWS”的步骤时,右击代码并选择>将函数上传到Lambda ===>…

我面临的错误: 1)我收到了一个错误窗口,其中的消息是“未能将项目上传到Lambda,无法执行请求:通过对等程序重置连接:套接字写入错误”

2)我的Stack Tarce的第一行异常是:"com.amazonaws.SdkClientException:无法执行HTTP请求:通过对等方重置连接:由: java.net.SocketException:对等方重置连接:套接字写入错误引起的套接字写入错误“

3) Eclipse日志给出了这样的消息:“org.eclipse.core.databinding.ValueBinding.doUpdate(ValueBinding.java:158)”上的java.lang.NullPointerException

然后,我对eclipse网络连接做了一个小小的更改,从而更改了设置,因为我的代理设置阻止了将我的项目上传到lambda,因此我想出了如下解决方案:

解决方案: Window -> Preferences -> General -> Network Connection -> Active Provider作为“Direct.

然后尝试用相同的步骤将这个项目上传到lambda上,这对我来说是有效的。希望这对你也有帮助。

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

https://stackoverflow.com/questions/25306172

复制
相关文章

相似问题

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