Ошибка создания тегов java.lang.NoSuchMethodError

Я могу создавать экземпляры с помощью 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. Хотя с компиляцией проблем нет, я не понимаю, почему после развертывания возникает эта ошибка.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
167
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

В документации сказано: «Вместо этого используйте AWSClientBuilder».

Я добавил 1.11.333 версию aws-sdk-java в качестве библиотеки на моей клиентской стороне. Это последняя версия, как показывает eclipse.

Abinash Kumar 23.05.2018 14:25

Да, вы правильно указали, проблема была в клиентской и серверной версиях sdk. Мне пришлось преобразовать проект в maven, а затем использовать версию 1.11.335, поскольку в качестве библиотеки последняя версия была указана как 1.11.333. Ваше здоровье!!

Abinash Kumar 24.05.2018 06:33

Другие вопросы по теме