在AWS SQS (Amazon Simple Queue Service) 中,如果提示“此wsdl版本中不存在指定的队列”,通常是因为指定的队列在当前区域或账户中不存在。
下面是一个使用 AWS SDK for Java 的代码示例,用于解决此问题:
import com.amazonaws.services.sqs.AmazonSQS;
import com.amazonaws.services.sqs.AmazonSQSClientBuilder;
import com.amazonaws.services.sqs.model.CreateQueueRequest;
import com.amazonaws.services.sqs.model.CreateQueueResult;
import com.amazonaws.services.sqs.model.GetQueueUrlResult;
import com.amazonaws.services.sqs.model.QueueDoesNotExistException;
public class SQSExample {
public static void main(String[] args) {
String queueName = "my-queue";
// 创建 AWS SQS 客户端
AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();
try {
// 获取队列的 URL
GetQueueUrlResult queueUrlResult = sqs.getQueueUrl(queueName);
String queueUrl = queueUrlResult.getQueueUrl();
// 队列存在,可以进行操作
// TODO: 在这里添加你的队列操作代码
System.out.println("队列存在,可以进行操作");
} catch (QueueDoesNotExistException ex) {
// 队列不存在,创建一个新队列
CreateQueueRequest createQueueRequest = new CreateQueueRequest(queueName);
CreateQueueResult createQueueResult = sqs.createQueue(createQueueRequest);
String queueUrl = createQueueResult.getQueueUrl();
// TODO: 在这里添加你的队列操作代码
System.out.println("创建新队列成功,可以进行操作");
}
}
}
以上代码示例首先尝试获取指定队列的 URL,如果队列不存在,则会捕获 QueueDoesNotExistException
异常,并创建一个新的队列。然后,你可以在 TODO
注释的地方添加你的队列操作代码。
请确保你已经正确配置了 AWS SDK for Java,并替换代码中的 queueName
为你要操作的队列名称。
下一篇:AWS SQS消费者未消费消息