我有一个spring boot应用程序,它将文件上传到S3存储桶。 每当应用程序尝试上载文件时,我收到以下错误。堆栈跟踪是一个巨大的。所以我只提供其中的一部分。
java.lang.IllegalStateException: Socket not created by this factory
at org.apache.http.util.Asserts.check(Asserts.java:34) ~[httpcore-4.4.6.jar:4.4.6]
at org.apache.http.conn.ssl.SSLSocketFactory.isSecure(SSLSocketFactory.java:435) ~[httpclient-4.5.3.jar:4.5.3]
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:186) ~[httpclient-4.5.3.jar:4.5.3]
我使用以下依赖
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.123</version>
</dependency>
我甚至尝试过
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
</parent>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-aws</artifactId>
</dependency>
<!--<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-aws-context</artifactId>
</dependency>
但是获得相同类型的错误
我尝试过使用TransferManager以及AmazonS3的putObject()方法,但错误相同。
几天前应用程序运行良好,错误最近才开始出现。
答案 0 :(得分:2)
我在SDK的v1.10.12上遇到了同样的问题,我切换到v1.11.136并解决了我的问题,将下面的代码添加到你的pom文件中
<!-- AWS S3 Dependencies-->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.136</version>
</dependency>
<!-- End of AWS S3 Dependencies -->
答案 1 :(得分:0)
发布更多的堆栈跟踪会很有用,这样我们就可以看到SDK生命周期中的哪个点正在生成异常(上面的堆栈跟踪只显示了apache类)。您还可以展示如何配置S3客户端吗?
您是否正在配置自定义SocketFactory
?有问题的检查是为了查看Socket
创建的SocketFactory
实际上是SSLSocket
,如果不是 - 它就是炸弹的地方 - 您可以从Apache代码中看到mobx-react
observer
3}}