创建标记失败,错误为java.lang.NoSuchMethodError

时间:2018-05-23 12:11:27

标签: java amazon-web-services amazon-ec2 nosuchmethoderror aws-sdk-java-2.0

我可以使用aws-sdk-java创建实例,但是最近在尝试创建用于命名实例的标记时,我反复收到错误

  

java.lang.NoSuchMethodError:   com.amazonaws.services.ec2.AmazonEC2.createTags(LCOM / amazonaws /服务/ EC2 /模型/ CreateTagsRequest)LCOM / amazonaws /服务/ EC2 /模型/ 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 :(得分:0)

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

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

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

文档说&#34;改为使用AWSClientBuilder&#34;