Почему withRegion () AmazonSNSClientBuilder не отображается? - PullRequest
0 голосов
/ 23 мая 2019

Я пишу код для создания клиента SNS Amazon Web Services в Eclipse, когда я получаю сообщение об ошибке

Метод withRegion (Регион) из типа AwsClientBuilder не отображается

Вот мой код

package com.amazonaws.samples;

import java.util.Date;

import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.AnonymousAWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.client.builder.AwsClientBuilder;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.sns.AmazonSNS;
import com.amazonaws.services.sns.AmazonSNSClient;
import com.amazonaws.services.sns.AmazonSNSClientBuilder;
import com.amazonaws.services.sns.model.CreateTopicRequest;
import com.amazonaws.services.sns.model.CreateTopicResult;
import com.amazonaws.services.sns.model.PublishRequest;

// Example SNS Sender
public class Main {

    // AWS credentials -- replace with your credentials
    static String ACCESS_KEY = "<Your AWS Access Key>";
    static String SECRET_KEY = "<Your AWS Secret Key>";

    // Sender loop
    public static void main(String... args) throws Exception {

        // Create a client

        AWSCredentials awsCred = new AnonymousAWSCredentials();

        AWSStaticCredentialsProvider cred = new AWSStaticCredentialsProvider(awsCred);

        Region region = Region.getRegion(Regions.US_EAST_1);

        AmazonSNS service = AmazonSNSClientBuilder.standard().withRegion(region).withCredentials(cred).build(); // Error message: The method withRegion(Region) from the type AwsClientBuilder<AmazonSNSClientBuilder,AmazonSNS> is not visible

        // Create a topic
        CreateTopicRequest createReq = new CreateTopicRequest()
            .withName("MyTopic3");
        CreateTopicResult createRes = service.createTopic(createReq);

        for (;;) {

            // Publish to a topic
            PublishRequest publishReq = new PublishRequest()
                .withTopicArn(createRes.getTopicArn())
                .withMessage("Example notification sent at " + new Date());
            service.publish(publishReq);

            Thread.sleep(1000);
        }
    }
}

На скриншоте показано, где произошла ошибка с красным подчеркиванием в пунктирной линии:

Eclipse for Java withRegion() underlined in red to show error

Что я должен проверить, чтобы исправить это?

1 Ответ

1 голос
/ 23 мая 2019

Вы передаете неправильный параметр, withRegion принимает либо String, либо Regions (примечание, не Region, единственное число).

Попробуйте передать Regions.EU_WEST_1.

Оба AmazonSNSClientBuilder.standard().withRegion(Regions.EU_WEST_1).build();

и AmazonSNSClientBuilder.standard().withRegion("eu-west-1").build();

работают нормально для меня.

...