Я пытаюсь использовать defaultClient AmazonS3ClientBuilder на AWS EMR, чтобы получить некоторые файлы из S3 Bucket следующим образом:
S3Object fullObject = null;
try {
String bucket = "bucket";
String key = "key";
AmazonS3 s3client = AmazonS3ClientBuilder.defaultClient();
fullObject = s3client.getObject(new GetObjectRequest(bucket, key));
}
. Я установил путь к классам таким образом
EXPORT CLASSPATH=/path/to/httpclient/httpclient-4.5.2.jar:/path/to/httcore/httpcore-4.4.11.jar:
Я также добавил следующие зависимости в путь к классам:
- aws - java -sdk: 1.11.820
- aws - java -sdk-s3: 1.11.820
- aws - java -sdk-core: 1.11.820
- commons-logging : 1.2
Однако каждый раз, когда я пытаюсь запустить программу, я получаю сообщение об ошибке:
Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144)
at com.amazonaws.http.apache.client.impl.ApacheConnectionManagerFactory.getPreferredSocketFactory(ApacheConnectionManagerFactory.java:89)
at com.amazonaws.http.apache.client.impl.ApacheConnectionManagerFactory.create(ApacheConnectionManagerFactory.java:66)
at com.amazonaws.http.apache.client.impl.ApacheConnectionManagerFactory.create(ApacheConnectionManagerFactory.java:59)
at com.amazonaws.http.apache.client.impl.ApacheHttpClientFactory.create(ApacheHttpClientFactory.java:50)
at com.amazonaws.http.apache.client.impl.ApacheHttpClientFactory.create(ApacheHttpClientFactory.java:38)
at com.amazonaws.http.AmazonHttpClient.<init>(AmazonHttpClient.java:339)
at com.amazonaws.http.AmazonHttpClient.<init>(AmazonHttpClient.java:323)
at com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:239)
at com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:225)
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:693)
at com.amazonaws.services.s3.AmazonS3Builder$1.apply(AmazonS3Builder.java:35)
at com.amazonaws.services.s3.AmazonS3Builder$1.apply(AmazonS3Builder.java:32)
at com.amazonaws.services.s3.AmazonS3ClientBuilder.build(AmazonS3ClientBuilder.java:64)
at com.amazonaws.services.s3.AmazonS3ClientBuilder.build(AmazonS3ClientBuilder.java:28)
at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46)
at com.amazonaws.services.s3.AmazonS3ClientBuilder.defaultClient(AmazonS3ClientBuilder.java:54)
at ch.post.places.search.quags.official.run5.GetObject2.main(GetObject2.java:22)
Я пытался использовать разные версии зависимостей, но ничего не работает . Есть ли решение этой проблемы?