我试图将一些对象放入s3,它在aws套接字上抛出错误,而不是由这个工厂异常创建的。有人对此有任何线索吗?
它在这个功能上失败了
public void uploadToS3(Object obj) {
try {
ByteArrayInputStream input = new ByteArrayInputStream(obj.toString().getBytes());
s3client.listBuckets();
s3client.putObject(bucketName,fileName,input,new ObjectMetadata());
}
catch(AmazonServiceException e) {
System.out.println(e.toString());
}
}
这是错误消息
套接字不是由该工厂在组织中创建的。阿帕奇。http。util。断言。在org上检查(Asserts.java:34)。阿帕奇。http。连接ssl。SSLSocketFactory。isSecure(SSLSocketFactory.java:435)位于org。阿帕奇。http。impl。conn.DefaultClientConnectionOperator。org上的openConnection(DefaultClientConnectionOperator.java:186)。阿帕奇。http。impl。conn.ManagedClientConnectionImpl。在org上打开(ManagedClientConnectionImpl.java:326)。阿帕奇。http。impl。客户DefaultRequestDirector。tryConnect(DefaultRequestDirector.java:610)位于org。阿帕奇。http。impl。客户DefaultRequestDirector。在org上执行(DefaultRequestDirector.java:445)。阿帕奇。http。impl。客户AbstractHttpClient。doExecute(AbstractHttpClient.java:835)位于org。阿帕奇。http。impl。客户可关闭的HTTPClient。在org上执行(CloseableHttpClient.java:83)。阿帕奇。http。impl。客户可关闭的HTTPClient。在com上执行(CloseableHttpClient.java:56)。amazonaws。http。AmazonHttpClient。executeOneRequest(AmazonHttpClient.java:749)位于com。amazonaws。http。AmazonHttpClient。executeHelper(AmazonHttpClient.java:505)位于com。amazonaws。http。AmazonHttpClient。在com上执行(AmazonHttpClient.java:317)。amazonaws。服务。s3.AmazonS3客户。在com上调用(AmazonS3Client.java:3595)。amazonaws。服务。s3.AmazonS3客户。在com上调用(AmazonS3Client.java:3548)。amazonaws。服务。s3.AmazonS3客户。com上的ListBucket(AmazonS3Client.java:697)。amazonaws。服务。s3.AmazonS3客户。com上的ListBucket(AmazonS3Client.java:703)。莫巴卡尔。服务数据模型服务。在com上上传到3(DataModelService.java:33)。莫巴卡尔。处理程序。未转换的IDataModelMessageHandler。handle(untransformedridatamodelmessagehandler.java:38)。反映NativeMethodAccessorImpl。sun上的invoke0(本机方法)。反映NativeMethodAccessorImpl。在sun调用(未知源)。反映DelegatingMethodAccessorImpl。调用(未知Sour
这是config类:
@Configuration
public class S3Config {
@Value("${aws.accessKey}")
private String accessKey;
@Value("${aws.secretKey}")
private String secretKey;
@Value("${aws.region}")
private String region;
@Bean
public BasicAWSCredentials basicAWSCredentials() {
return new BasicAWSCredentials(accessKey, secretKey);
}
@Bean(name="amazonClient")
public AmazonS3Client amazonS3Client(AWSCredentials awsCredentials) {
AmazonS3Client amazonS3Client = new AmazonS3Client(awsCredentials);
amazonS3Client.setRegion(Region.getRegion(Regions.fromName(region)));
return amazonS3Client;
}
}
以下是依赖项:
<dependencies>
<dependency>
<groupId>com.mobacar.searchmanager</groupId>
<artifactId>valueObject</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Starter Dependecy S3 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.10.39</version>
</dependency>
<!-- -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-kafka</artifactId>
</dependency>
</dependencies>
我在1.9.32版本的Java 8 aws-Java-sdk-s3中遇到了同样的问题
我刚刚将我的httpclient版本更新到4.5.1,这解决了我的问题
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
<type>jar</type>
</dependency>
当我将我们的项目迁移到Java 11 Spring Boot 2.1.8时,我也遇到了同样的问题。修复方法是什么?将aws java sdk升级到以下版本以修复此问题。
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.836</version>
</dependency>
我终于明白了。Amazon java sdk需要一个不同版本的htppclient,它不是来自Spring托管的httpclient。所以只需要添加这个依赖项。
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5</version>
</dependency>
问题内容: 我注释了一堆POJO,以便JPA可以使用它们在Hibernate中创建表。似乎所有表都被创建,除了一个非常中央的表,称为“修订”。Revision类具有注释,因此它将被重命名为RevisionT,因此与MySQL(目标数据库)中的任何保留字都没有冲突。 我删除整个数据库,重新创建它,然后基本上打开和关闭JPA会话。似乎可以毫无问题地重新创建所有表。 为什么在创建的架构中缺少单个表?可以
假设有一个类A,它的构造函数是这样的: 还有AFactory: 所以要创建一个A的实例,我显然需要做这样的事情: 但是,假设我有其他类:例如,B类、C类和D类具有类型为A的成员(带有字段注入,但也可以是ctor): 我希望将 A 的相同实例注入到这些类中。但仍然可以选择将 A 的另一个实例注入其他类(假设 E 类和 F 类)。 正确的做法是什么?我就是想不出一个干净的方法来做到这一点。
我是Angular的新手,目前正在研究路由。我在组件中使用子路由时遇到了问题。routerLink在组件中没有呈现为链接。如果我使用路由器出口,应用程序会崩溃。 使用路由器出口时,我得到了以下错误信息: 我用谷歌搜索了错误消息,解决方案始终是模块中缺少路由器模块的导入。我已经导入了路由器模块。 这是我的模块。ts 这是我的应用程序。 怎么了,漏了什么? 如果您愿意,您也可以在github上查看我的
我正在开发一个单例BluetoothHelper类。在connectToBTDevice()方法中,调用了一个新线程,在该线程中,蓝牙套接字试图连接到蓝牙设备。不幸的是,它开始时很好,但退出时有一个警告系统。错误如下: BluetoothHelper.java onnectToBTDevice(BluetoothDevice device)方法位于第234行。BluetoothSocket con
我试图了解Socketchannes和NIO的总体情况。我知道如何使用常规套接字,以及如何为每个客户机服务器创建一个简单的线程(使用常规阻塞套接字)。 所以我的问题是: 什么是袜子通道 当我使用SocketChannel而不是Socket时,额外得到了什么 通道和缓冲区之间的关系是什么 什么是选择器 文档中的第一句话是
我有以下代码: 我将添加更多类似的类。与其单独拼出所有这些类,我想学习如何创建一个可以从简单的数据结构创建这些类的工厂。 我该怎么做?我阅读了Metaobject协议文档,但根据文档页面顶部和中间的示例,我不知道如何动态地为我的类指定不同的名称。 我试过: 但最后一行只是抛出了一个错误: