AWSMarketplaceMeteringClientBuilder.withRegion() не отображается

Я использую AWS SDK для Java для использования в сервисе AWS Metering. Когда я попытался использовать AWSMarketplaceMeteringClientBuilder для создания AWSMarketplaceMeteringClient, я обнаружил, что если я использую метод withRegion(Region region), я получаю следующую ошибку времени компиляции:

The method withRegion(Region) from the type AwsClientBuilder<AWSMarketplaceMeteringClientBuilder,AWSMarketplaceMetering> is not visible

Код клиента показан ниже:

AWSMarketplaceMeteringClient metClient = (AWSMarketplaceMeteringClient) AWSMarketplaceMeteringClientBuilder
        .standard()
        .withRegion(Regions.getCurrentRegion())
        .withCredentials(InstanceProfileCredentialsProvider.getInstance())
        .build();

И когда я пытаюсь использовать метод setRegion(Region region) для AWSMarketplaceMeteringClient напрямую, я получаю следующую ошибку времени выполнения:

Exception in thread "main" java.lang.UnsupportedOperationException: Client is immutable when created with the builder.
    at com.amazonaws.AmazonWebServiceClient.checkMutability(AmazonWebServiceClient.java:854)
    at com.amazonaws.AmazonWebServiceClient.setRegion(AmazonWebServiceClient.java:349)

Итак, как мне использовать метод withRegion(Region region)?


person Rajib Biswas    schedule 02.06.2017    source источник


Ответы (1)


Если внимательно присмотреться, класс AwsClientBuilder имеет следующие методы:

public final Subclass withRegion(Regions region) { }
public final Subclass withRegion(String region) { }
private Subclass withRegion(Region region) { }

Я пытался использовать метод withRegion (область региона), который является закрытым в этом базовом классе. Поэтому мы должны использовать метод withRegion(Regions region) [ПРИМЕЧАНИЕ: параметр — это регионы, а не регион]. Использование этого метода решило мою проблему.

person Rajib Biswas    schedule 14.06.2017