创建标签失败,出现错误 java.lang.NoSuchMethodError

Create Tags failing with error 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。虽然编译没有问题,但是我不明白为什么部署后会出现这个错误。

方法名称 createTags 在 class AmazonEC2 中不存在,或者您向该方法传递了错误的参数列表。

如果 aws-sdk-java api 的客户端和服务器端版本彼此不同,也会发生这种情况。请确保您使用正确的客户端 API.

AmazonE2Client 大部分已弃用: @see https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/ec2/AmazonEC2Client.html

文档说 "use AWSClientBuilder instead"