1

我可以使用 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 也会失败。虽然编译没有问题,但我不明白为什么部署后会出现此错误。

4

1 回答 1

0

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

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

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

文档说“改用 AWSClientBuilder”

于 2018-05-23T12:17:50.530 回答