Reputation: 53
I am trying to use the AmazonS3ClientBuilder's defaultClient on an AWS EMR to get some files from the S3 Bucket in this way:
S3Object fullObject = null;
try {
String bucket = "bucket";
String key = "key";
AmazonS3 s3client = AmazonS3ClientBuilder.defaultClient();
fullObject = s3client.getObject(new GetObjectRequest(bucket, key));
}
. I have set a classpath in this way
EXPORT CLASSPATH=/path/to/httpclient/httpclient-4.5.2.jar:/path/to/httcore/httpcore-4.4.11.jar:
I have also put following dependencies in the classpath:
However, every time I try to run the program i get the error:
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)
I tried to use different versions of the dependencies, but nothing seems to work. Is there a solution to this problem?
Upvotes: 2
Views: 1409