2017-12-07 24 views
0

The sample programcom.amazonaws.internal.config.InternalConfig.loadはIllegalArgumentException URL = nullを

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

のStackTraceによって: com.amazonawsで

java.lang.IllegalArgumentExceptionが.internal.config.InternalConfig.loadfrom(InternalConfig.java:235) at com.amazonaws.internal.conf com.amazonaws.internal.config.InternalConfig $工場でig.InternalConfig.load(InternalConfig.java:249) 。(InternalConfig.java:304) com.amazonaws.util.VersionInfoUtils.userAgent(VersionInfoUtils.javaで: com.amazonaws.util.VersionInfoUtils.getUserAgent(VersionInfoUtils.java:100) com.amazonaws.ClientConfigurationで における142) でcom.amazonaws.util.VersionInfoUtils.initializeUserAgent(VersionInfoUtils.java:137) 。 (ClientConfiguration.java:65) スレッド "main"の例外java.lang.ExceptionInInitializerError at com.amazonaws.util.VersionInfoUtils.userAgent(VersionInfoUtils.java:142) com.amazonaws.util.VersionInfoUtils.initializeUserAgent(VersionInfoUtils.java:137) で でcom.amazonaws.util.VersionInfoUtils.getUserAgent(VersionInfoUtils.java:100) com.amazonaws.ClientConfigurationで。(ClientConfiguration.java :65) によって引き起こさbluemixtest.BlueMixTest.main(BlueMixTest.java:44)でbluemixtest.BlueMixTest.createClient(BlueMixTest.java:58)において: com.amazonaws.internal.configでjava.lang.IllegalArgumentExceptionが。 (内部構成。 config.InternalConfig $工場。(InternalConfig.java:304)

IBM-COS-javaの-SDK-コア-1.1.0とIBM-COS-javaの-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

これは、コードに適切な依存関係を使用していないようです。だけでなく、あなたはすでに試した何を - あなたはMavenを使用している場合

は、完全に実際の問題と目的が何であるかを説明するようにしてくださいの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

関連する問題