簡體   English   中英

SQS上的AWS Java / android SDK:QueueDoesNotExistException

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM