Создать теги не удалось с ошибкой java.lang.NoSuchMethodError - PullRequest
0 голосов
/ 23 мая 2018

Я могу создавать экземпляры, используя aws-sdk-java, но недавно, пытаясь создать теги для именования экземпляров, я постоянно получаю сообщение об ошибке

java.lang.NoSuchMethodError: com.amazonaws.services.ec2.AmazonEC2.createTags (Lcom / amazonaws / services / ec2 / model / CreateTagsRequest;) Lcom / amazonaws / services / ec2 / model / CreateTagsResult;

            Tag resourceName = new Tag("Name", instanceName);
            List<Tag> tags = new ArrayList<Tag>();
            tags.add(resourceName);
            CreateTagsRequest tag_request = new CreateTagsRequest()
                    .withTags(resourceName).withResources("i-0xxxxxxxxxxxxxxxx");

            try {
                CreateTagsResult tag_response = ec2Client.createTags(tag_request);
            }catch(com.amazonaws.services.ec2.model.AmazonEC2Exception e){
                e.printStackTrace();
            }

Я попытался установитьимя тега при создании экземпляра с использованием

        List<TagSpecification> tagSpecifications = new ArrayList<>();
        tagSpecifications.add(new TagSpecification().withTags(tags));
        runInstancesRequest.withTagSpecifications(tagSpecifications);

Но даже это не удается с той же ошибкой java.lang.NoSuchMethodError.Хотя при компиляции проблем нет, тогда я не понимаю, почему возникает такая ошибка после развертывания.

1 Ответ

0 голосов
/ 23 мая 2018

Либо имя метода createTags не существует в классе AmazonEC2, либо вы передаете методу неправильный список параметров.

Это также может произойти, если версия aws-sdk-java на стороне клиента и сервераAPI отличаются друг от друга.Убедитесь, что вы используете правильный API на стороне клиента.

AmazonE2Client в основном устарел: @see https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/ec2/AmazonEC2Client.html

В документации сказано "используйте вместо этого AWSClientBuilder"

...