[英]AWS java/android SDK on SQS: QueueDoesNotExistException
我正在嘗試刪除SQS上的消息,但沒有成功。 即使我只是從url / queue中獲取消息,也得到QueueDoesNotExistException。 有人可以告訴我我在做什么錯嗎? 這是我寫的函數:
public ArrayList<String> receiveSqsMessages(String url) {
AmazonSQSClient client = getSQSClient(Regions.SA_EAST_1);
ReceiveMessageRequest request = new ReceiveMessageRequest(url);
request.setMaxNumberOfMessages(10);
request.setWaitTimeSeconds(5);
ArrayList<Message> messageList = null;
try {
ReceiveMessageResult result = client.receiveMessage(request);
messageList = new ArrayList<Message>(result.getMessages());
} catch (AmazonClientException ac) {
return null;
}
ArrayList<String> messages = new ArrayList<String>();
for (Message m : messageList) {
String current_message = m.getBody();
if(md5(current_message).equals(m.getMD5OfBody())) {
messages.add(current_message);
String ticket = m.getReceiptHandle();
DeleteMessageRequest delete = new DeleteMessageRequest();
delete.setReceiptHandle(ticket);
client.deleteMessage(delete);
}
}
return messages;
}
private AmazonSQSClient getSQSClient(Regions regions) {
AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY_ID, SECRET_KEY);
Region region = Region.getRegion(regions);
AmazonSQSClient client = new AmazonSQSClient(credentials);
client.setRegion(region);
return client;
}
我確認在行中使用Log.d檢索了消息。
您沒有將queueUrl
設置為DeleteMessageRequest
。 您應該在DeleteMessageRequest
對象上調用setQueueUrl(String queueUrl)
。 您可以在DeleteMessageRequest Javadoc上閱讀有關它的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.