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