2017-12-07 10 views
0

The sample programcom.amazonaws.internal.config.InternalConfig.load IllegalArgumentException가 =

package bluemixtest; 

import com.amazonaws.ClientConfiguration; 
import com.amazonaws.SDKGlobalConfiguration; 
import com.amazonaws.auth.AWSCredentials; 
import com.amazonaws.auth.AWSStaticCredentialsProvider; 
import com.amazonaws.auth.BasicAWSCredentials; 
import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration; 
import com.amazonaws.services.s3.AmazonS3; 
import com.amazonaws.services.s3.AmazonS3ClientBuilder; 
import com.amazonaws.services.s3.model.Bucket; 
import com.amazonaws.services.s3.model.ListObjectsRequest; 
import com.amazonaws.services.s3.model.ObjectListing; 
import com.amazonaws.services.s3.model.S3ObjectSummary; 
import com.ibm.oauth.BasicIBMOAuthCredentials; 
import java.util.List; 

public class BlueMixTest { 

private static AmazonS3 _s3Client; 

public static void main(String[] args) { 
    SDKGlobalConfiguration.IAM_ENDPOINT = "https://iam.bluemix.net/oidc/token"; 

    String bucketName = "********"; 
    String api_key = "********"; 
    String service_instance_id = "********"; 
    String endpoint_url = "https://s3-api.us-geo.objectstorage.softlayer.net"; 
    String location = "us"; 

    _s3Client = createClient(api_key, service_instance_id, endpoint_url, location); 
    listObjects(bucketName, _s3Client); 
    listBuckets(_s3Client); 
} 

public static AmazonS3 createClient(String api_key, String service_instance_id, String endpoint_url, String location) { 
    AWSCredentials credentials; 
    if (endpoint_url.contains("objectstorage.softlayer.net")) { 
     credentials = new BasicIBMOAuthCredentials(api_key, service_instance_id); 
    } else { 
     String access_key = api_key; 
     String secret_key = service_instance_id; 
     credentials = new BasicAWSCredentials(access_key, secret_key); 
    } 
    ClientConfiguration clientConfig = new ClientConfiguration().withRequestTimeout(5000); 
    clientConfig.setUseTcpKeepAlive(true); 

    AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(credentials)) 
      .withEndpointConfiguration(new EndpointConfiguration(endpoint_url, location)).withPathStyleAccessEnabled(true) 
      .withClientConfiguration(clientConfig).build(); 
    return s3Client; 
} 

public static void listObjects(String bucketName, AmazonS3 s3Client) { 
    System.out.println("Listing objects in bucket " + bucketName); 
    ObjectListing objectListing = s3Client.listObjects(new ListObjectsRequest().withBucketName(bucketName)); 
    for (S3ObjectSummary objectSummary : objectListing.getObjectSummaries()) { 
     System.out.println(" - " + objectSummary.getKey() + " " + "(size = " + objectSummary.getSize() + ")"); 
    } 
    System.out.println(); 
} 

public static void listBuckets(AmazonS3 s3Client) { 
    System.out.println("Listing buckets"); 
    final List<Bucket> bucketList = _s3Client.listBuckets(); 
    for (final Bucket bucket : bucketList) { 
     System.out.println(bucket.getName()); 
    } 
    System.out.println(); 
} 
} 


ClientConfiguration clientConfig = new ClientConfiguration() 

는 IllegalArgumentException

스택 트레이스 : com.amazonaws에서

java.lang.IllegalArgumentException가 .internal.config.InternalConfig.loadfrom (InternalConfig.java:235) at com.amazonaws.internal.conf com.amazonaws.util.VersionInfoUtils.userAgent에서 ig.InternalConfig.load com.amazonaws.internal.config.InternalConfig $ 공장에서 (InternalConfig.java:249) . (InternalConfig.java:304) (VersionInfoUtils.java : com.amazonaws.ClientConfiguration에서 com.amazonaws.util.VersionInfoUtils.getUserAgent (VersionInfoUtils.java:100) 에서 com.amazonaws.util.VersionInfoUtils.initializeUserAgent (VersionInfoUtils.java:137) 142) . (ClientConfiguration.java:65) 스레드 "main"의 예외 java.lang.ExceptionInInitializerError at com.amazonaws.util.VersionInfoUtils.userAgent (VersionInfoUtils.java:142) com.amazonaws.ClientConfiguration에서 com.amazonaws.util.VersionInfoUtils.getUserAgent (VersionInfoUtils.java:100) 에서 com.amazonaws.util.VersionInfoUtils.initializeUserAgent (VersionInfoUtils.java:137)에서 . (ClientConfiguration.java : com.amazonaws.internal.config에서 java.lang.IllegalArgumentException가 : bluemixtest.BlueMixTest.main (BlueMixTest.java:44)에서 bluemixtest.BlueMixTest.createClient (BlueMixTest.java:58) 65)에 의한이 . InternalConfig.loadfrom (InternalConfig.java:235) at com.amazonaws.internal.config.InternalConfig.load (InternalConfig.java:249) at com.amazonaws.internal. config.InternalConfig $ 공장. (InternalConfig.java:304)

IBM-COS-자바 SDK 코어-1.1.0 및 IBM-COS-자바 SDK-s3-1.1.0

이 문제를 해결하고 싶습니다. 필드의 자원 : ibm-cos-java-sdk

ibm-cos-java-sdk를 사용하여 IBM Cloud Object Storage에 액세스하려고합니다.

+0

에 다음 종속성을 넣어주세요 - - 우리가 알아낼 것이라고 가정하기보다는. 그렇지 않으면 아마도 기대했던 것보다 유용한 답이 줄어들 것입니다. – azarc3

+0

감사합니다. ibm-cos-java-sdk를 사용하여 IBM Cloud Object Storage에 액세스하고 싶습니다. – oku

+0

maven 프로젝트가 생성되지 않았습니다. – oku

답변

0

코드에 대한 올바른 종속성을 사용하지 않는 것처럼 보입니다. 뿐만 아니라 이미 시도했다 - 당신이 받는다는을 사용하는 경우

는 완전히 실제 문제와 목적이 무엇인지 설명해주십시오 pom.xml 파일

<dependencies> 
    <dependency> 
     <groupId>com.ibm.cos</groupId> 
     <artifactId>ibm-cos-java-sdk</artifactId> 
     <version>1.0.1</version> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.8.2</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 
+0

pom.xml은 IBM에서 제공했습니다. 버전은 1.1.0입니다. JUNIT을 사용하지 않습니다. 의존성 1.0.1이 필요합니까? – oku

+0

프로젝트가 정상적으로 Reated되었습니다. – oku