2015-04-11 31 views
6

Amazon S3'te dosya yüklemek ve indirmek için Java API kullanıyorum. Yaklaşık bir hafta öncesine kadar mükemmel çalışıyordu ve kodlara dokunmamış olmama rağmen tamamen çalışmayı bıraktı. Bunun bir çözümü olup olmadığını merak ediyorum. Teşekkürler! BurayaJava API için AWS SDK kullanırken SSLHandshakeException

amele para cezası kod:

AWSCredentials credentials = new BasicAWSCredentials(ACCESSKEYID, SECRETKEY); 
AmazonS3Client s3client = new AmazonS3Client(credentials); 
List<String> bucketList = new ArrayList<String>(); 
    for (Bucket bucket : s3client.listBuckets()) { 
     System.out.println(bucket.getName()); 
    } 

Ve burada hata var: Ben biraz araştırma yapmıştı

Apr 11, 2015 9:44:12 PM com.amazonaws.http.AmazonHttpClient executeHelper 
INFO: Unable to execute HTTP request: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) 
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1904) 
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:279) 
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:273) 
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1446) 
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:209) 
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:901) 
at sun.security.ssl.Handshaker.process_record(Handshaker.java:837) 
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1023) 
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332) 
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359) 
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343) 
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:534) 
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:402) 
at com.amazonaws.http.conn.ssl.SdkTLSSocketFactory.connectSocket(SdkTLSSocketFactory.java:118) 
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:178) 
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:304) 
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610) 
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445) 
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863) 
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) 
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) 
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:685) 
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:460) 
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:295) 
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3736) 
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3686) 
at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:688) 
at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:696) 
at keymanager.service.AWSAPI.getBucketList(AWSAPI.java:130) 
at keymanager.view.KeyManager.initializeBucketList(KeyManager.java:59) 
at keymanager.view.KeyManager.connectButtonActionPerformed(KeyManager.java:626) 
at keymanager.view.KeyManager.access$1000(KeyManager.java:22) 
at keymanager.view.KeyManager$12.actionPerformed(KeyManager.java:425) 

ve bazı sorun olabilir öne sürmüştü izinlerle. Ancak sanırım elimdeki talimatları takip ettim: http://docs.aws.amazon.com/AWSToolkitEclipse/latest/GettingStartedGuide/tke_setup_creds.html#d0e387. Gerçekten çok takıldım beyler. Teşekkürler, ve herhangi bir yardım takdir edilecektir!

cevap

2

Aynı problem yaşadım. Çözüm cihazın yanlış tarih olduğu ortaya çıktı. Cihazınızın tarihini güncel tutmaya çalışın. Bunun sebebi, SSL sertifikalarının, cihazınızın tarihine göre doğrulanmakta olan düzenleme/son kullanma tarihine sahip olmasıdır.

0

Benzer bir sorunla karşılaştım. Sorunum, aşağıda verilen şekilde fasulye xml dosyasında proxy yapılandırmasını işaretlemişti.

<bean id="clientConfiguration" class="com.amazonaws.ClientConfiguration"> <property name="proxyHost" value="proxy.server.com"/> <property name="proxyPort" value="8080"/> </bean>

Ama özelliğini ayarlayın unuttum.

Protokolü girdikten sonra çalışmaya başladı