Amazon SQS abfrage

ProgrammNiklas

Neues Mitglied
Moin, in meinem Code zur Abfrage von Amazon SQS funktioniert soweit alles außer das ich nach ein paar mal ausführen den Fehlercode
java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
bekomme.
Weiß da jemand eine Lösung?



Java:
package com.company;
import java.util.*;
import java.util.concurrent.TimeUnit;

import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.sqs.AmazonSQSClientBuilder;
import com.amazonaws.services.sqs.model.CreateQueueRequest;
import com.amazonaws.services.sqs.model.DeleteMessageRequest;
import com.amazonaws.services.sqs.model.GetQueueAttributesRequest;
import com.amazonaws.services.sqs.model.GetQueueAttributesResult;
import com.amazonaws.services.sqs.model.MessageAttributeValue;
import com.amazonaws.services.sqs.model.ReceiveMessageRequest;
import com.amazonaws.services.sqs.model.SendMessageBatchRequest;
import com.amazonaws.services.sqs.model.SendMessageRequest;
import com.amazonaws.services.sqs.model.SetQueueAttributesRequest;
import com.amazonaws.services.sqs.model.SendMessageBatchRequestEntry;
import com.amazonaws.services.sqs.model.Message;
import com.amazonaws.services.sqs.AmazonSQS;

public class Main {


    private static final AWSCredentials credentials;


    static {
        // accesskey + secretkey
        credentials = new BasicAWSCredentials("", "");
    }


    public static void main(String[] args) {

      try {



        boolean repeat = true;
        Scanner scan = new Scanner(System.in);



        AmazonSQS sqs = AmazonSQSClientBuilder.standard()
                .withCredentials(new AWSStaticCredentialsProvider(credentials))
                .withRegion(Regions.US_EAST_1)
                .build();

        int i = 0;

                while (i < 6) {

        CreateQueueRequest createStandardQueueRequest = new CreateQueueRequest("baeldung-queue");
        String standardQueueUrl = sqs.createQueue(createStandardQueueRequest).getQueueUrl();



        // Create a fifo queue

        Map<String, String> queueAttributes = new HashMap<>();
        queueAttributes.put("FifoQueue", "true");
        queueAttributes.put("ContentBasedDeduplication", "true");

        CreateQueueRequest createFifoQueueRequest = new CreateQueueRequest("baeldung-queue.fifo").withAttributes(queueAttributes);
        String fifoQueueUrl = sqs.createQueue(createFifoQueueRequest).getQueueUrl();



        // Set up a dead letter queue

        String deadLetterQueueUrl = sqs.createQueue("baeldung-dead-letter-queue").getQueueUrl();

        GetQueueAttributesResult deadLetterQueueAttributes = sqs.getQueueAttributes(new GetQueueAttributesRequest(deadLetterQueueUrl).withAttributeNames("QueueArn"));

        String deadLetterQueueARN = deadLetterQueueAttributes.getAttributes().get("QueueArn");

        SetQueueAttributesRequest queueAttributesRequest = new SetQueueAttributesRequest().withQueueUrl(standardQueueUrl)
                .addAttributesEntry("RedrivePolicy", "{\"maxReceiveCount\":\"2\", " + "\"deadLetterTargetArn\":\"" + deadLetterQueueARN + "\"}");

        sqs.setQueueAttributes(queueAttributesRequest);

        // Send a message to a standard queue

        Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();

        messageAttributes.put("AttributeOne", new MessageAttributeValue().withStringValue("This is an attribute").withDataType("String"));

        SendMessageRequest sendMessageStandardQueue = new SendMessageRequest().withQueueUrl(standardQueueUrl)
                .withMessageBody("A simple message.")
                .withDelaySeconds(30) // Message will arrive in the queue after 30 seconds. We can use this only in standard queues
                .withMessageAttributes(messageAttributes);

        sqs.sendMessage(sendMessageStandardQueue);

        // Send a message to a fifo queue

        SendMessageRequest sendMessageFifoQueue = new SendMessageRequest().withQueueUrl(fifoQueueUrl).withMessageBody("FIFO Queue").withMessageGroupId("baeldung-group-1").withMessageAttributes(messageAttributes);

        sqs.sendMessage(sendMessageFifoQueue);

        // Send multiple messages

        List<SendMessageBatchRequestEntry> messageEntries = new ArrayList<>();
        messageEntries.add(new SendMessageBatchRequestEntry().withId("id-1").withMessageBody("batch-1").withMessageGroupId("baeldung-group-1"));
        messageEntries.add(new SendMessageBatchRequestEntry().withId("id-2").withMessageBody("batch-2").withMessageGroupId("baeldung-group-1"));


        SendMessageBatchRequest sendMessageBatchRequest = new SendMessageBatchRequest(fifoQueueUrl, messageEntries);
        sqs.sendMessageBatch(sendMessageBatchRequest);

        // Read a message from a queue


        ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(fifoQueueUrl).withWaitTimeSeconds(10).withMaxNumberOfMessages(1); //max 10

        final List<Message> sqsMessages = sqs.receiveMessage(receiveMessageRequest).getMessages();



                       sqsMessages.get(0).getMessageAttributes();
                        sqsMessages.get(0).getBody();














        // Delete a message from a queue

        sqs.deleteMessage(new DeleteMessageRequest().withQueueUrl(fifoQueueUrl).withReceiptHandle(sqsMessages.get(0).getReceiptHandle()));



        // Monitoring


        GetQueueAttributesRequest getQueueAttributesRequest = new GetQueueAttributesRequest(standardQueueUrl).withAttributeNames("All");
        GetQueueAttributesResult getQueueAttributesResult = sqs.getQueueAttributes(getQueueAttributesRequest);





                        System.out.println(String.format("The number of messages on the queue: %s", getQueueAttributesResult.getAttributes().get("ApproximateNumberOfMessages")));
                        System.out.println(String.format("The number of messages in flight: %s", getQueueAttributesResult.getAttributes().get("ApproximateNumberOfMessagesNotVisible")));




        try {

            TimeUnit.SECONDS.sleep(3);

        } catch (Exception exception) {

        }

        i++;
    }


      } catch(Exception e) {
          System.out.println(e);
      }
}





}
 

temi

Top Contributor
Anscheinend ist hier nichts drin: sqsMessages.get(0).getMessageAttributes();

Prüfe vor dem Zugriff, ob Daten enthalten sind.

Das ist aber nur eine Vermutung, beim Überfliegen des Codes. Ich empfehle den Umgang mit dem Debugger zu üben. ;)

Die Fehlermeldung an sich sollte ja kein Problem darstellen: Du versuchst auf den kleinsten Index einer Liste (oder Array) zuzugreifen und die Liste hat die Länge Null (= kein Inhalt).
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Amazon Produktbeschreibung auslesen und nach Keywords suchen Java Basics - Anfänger-Themen 2
D Interface Amazon Skill Kit, Interface but method in other class? Java Basics - Anfänger-Themen 3
U Amazon API Java Basics - Anfänger-Themen 4
M Variablen Werte nach setzen, bei Abfrage wieder alter Wert Java Basics - Anfänger-Themen 10
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
L If Abfrage Java Basics - Anfänger-Themen 4
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
W if-Abfrage bei ArrayList-Methodenaufrufen - Wie löse ich das? Java Basics - Anfänger-Themen 6
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
Marlena Bauer IBAN generieren (Deutschland) aus Abfrage von BLZ und Kontonummer? Java Basics - Anfänger-Themen 31
M Abfrage j/n und Bildschirm löschen Java Basics - Anfänger-Themen 3
S Und-Abfrage mit mehreren Ungleich-Operatoren Java Basics - Anfänger-Themen 17
O if Abfrage erkennt String nicht Java Basics - Anfänger-Themen 1
NeoLexx Abfrage mit instanceof führt zu unerwarteten Wert Java Basics - Anfänger-Themen 9
N Bedinugng If-Abfrage wird nie erfüllt Java Basics - Anfänger-Themen 4
L boolean-Abfrage enumeration Java Basics - Anfänger-Themen 3
Y Methoden Wie kann ich eine if-Abfrage bei Setters bauen? Java Basics - Anfänger-Themen 6
S Streams - Abfrage absteigend sortieren Java Basics - Anfänger-Themen 11
F If Abfrage gibt falsches Ergebnis.... Java Basics - Anfänger-Themen 6
F POST-Request mit json - Abfrage mit Java Java Basics - Anfänger-Themen 2
C Javafunktion zur Abfrage eines Quellcodes Java Basics - Anfänger-Themen 15
A JOPtionPaneOptionDialog Abfrage welcher Button gedrückt wurde? Java Basics - Anfänger-Themen 8
B Folgende Abfrage dynamisch programmieren? Java Basics - Anfänger-Themen 8
G if Abfrage: Nicht jeder Fall berücksichtigt Java Basics - Anfänger-Themen 2
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
J Erste Schritte if Abfrage von JButton in 2. Klasse Java Basics - Anfänger-Themen 27
S If Abfrage nur mit bestimmter Initialisierung? Java Basics - Anfänger-Themen 8
Z Boolean Abfrage in einer for each Schleife Java Basics - Anfänger-Themen 2
deatzi Variable aus If Abfrage später nutzen Java Basics - Anfänger-Themen 4
C Instanz einer Klasse während if-Abfrage erzeugen und bei zweiter if-Abfrage wiederverwenden Java Basics - Anfänger-Themen 6
S Backspace Abfrage funktioniert nicht Java Basics - Anfänger-Themen 4
F Interface JFrame mit if-Abfrage automatisch schließen lassen? Java Basics - Anfänger-Themen 3
R Abfrage von Variablen in Unterklassen einer ArrayList Java Basics - Anfänger-Themen 9
G Passwort und Passwort wiederholen in if-Abfrage vergleichen Java Basics - Anfänger-Themen 15
P Altklausur: Abfrage der Summe Java Basics - Anfänger-Themen 9
N Methoden Attribut Abfrage eines anderen Objektes Java Basics - Anfänger-Themen 36
D MySQL Abfrage in JTable speichern Java Basics - Anfänger-Themen 43
D SQL Abfrage anpassen Java Basics - Anfänger-Themen 17
H For-Schleife innerhalb If-Abfrage? Java Basics - Anfänger-Themen 3
F Abfrage ob Eingabe eine Zahl ist Java Basics - Anfänger-Themen 3
O Datentypen Volle 16 Bit eines Short für flags Abfrage nutzen Java Basics - Anfänger-Themen 11
S Input/Output Doppelte Input-Abfrage Java Basics - Anfänger-Themen 3
S Input/Output Programm läuft nach input-Abfrage nicht weiter. Java Basics - Anfänger-Themen 2
M Variablen Eine etwas andere if Abfrage ! Java Basics - Anfänger-Themen 10
H if-Abfrage, ungleich und falscher true Wert? Java Basics - Anfänger-Themen 11
F Ja Nein Abfrage und andere Probleme Java Basics - Anfänger-Themen 5
OlafHD Fehler Bei der if Abfrage Java Basics - Anfänger-Themen 5
quecksilver if-Abfrage in main ausführen Java Basics - Anfänger-Themen 4
D if-Abfrage Java Basics - Anfänger-Themen 12
J Abfrage für Programmwiederholung Java Basics - Anfänger-Themen 2
K Alternative zur If-Abfrage Java Basics - Anfänger-Themen 3
M Java als Webanwendung mit Datenbank abfrage Java Basics - Anfänger-Themen 3
D Abfrage ob Variableninhalt korrekt Java Basics - Anfänger-Themen 5
W Vergleich mit If-Abfrage nur für Zahlen bis 07 möglich - Warum? Java Basics - Anfänger-Themen 7
D Operatoren IF Abfrage liefert falsches Ergebnis Java Basics - Anfänger-Themen 4
X Ja nein abfrage? Java Basics - Anfänger-Themen 9
A Erste Schritte Problem bei meiner if-Abfrage! Java Basics - Anfänger-Themen 5
M Enum-Variabel-Abfrage funktioniert nicht? Java Basics - Anfänger-Themen 2
S Java Counter: nur 1 mal hochzählen auch wenn Abfrage mehrmals zutrifft. Java Basics - Anfänger-Themen 1
E Erste Schritte [Noob-Frage] Meine If-Abfrage macht nicht, was sie soll... Java Basics - Anfänger-Themen 2
C Abfrage nach einem Bild im Array Java Basics - Anfänger-Themen 9
A Key Event - Abfrage von 2 gedrückten Tasten Java Basics - Anfänger-Themen 6
T Klasse für Google-Abfrage Java Basics - Anfänger-Themen 9
Z If abfrage - Minimum 0 Java Basics - Anfänger-Themen 9
J Abfrage versetzen Java Basics - Anfänger-Themen 2
D Methoden Abfrage ob ein Wert bereits vorhanden ist Java Basics - Anfänger-Themen 1
thet1983 if() Abfrage Java Basics - Anfänger-Themen 2
A charAt(x)-Abfrage lässt bei Strings<x das Pgrogramm abstürzen. Kann man das verhindern? Java Basics - Anfänger-Themen 4
Uzi21 if - else Abfrage Java Basics - Anfänger-Themen 6
T Index-Abfrage von Pi Java Basics - Anfänger-Themen 5
H Erste Schritte If Abfrage Java Basics - Anfänger-Themen 3
B If Abfrage mit Passwort und Username Java Basics - Anfänger-Themen 2
U einlesen, abfrage Java Basics - Anfänger-Themen 25
T SQL Abfrage Läuft nicht Java Basics - Anfänger-Themen 5
N Probleme mit ActionListener und Logischer Abfrage Java Basics - Anfänger-Themen 4
F Erste Schritte IF-Abfrage fehlerhaft Java Basics - Anfänger-Themen 9
O Downloaden: Trotz If Abfrage wird Datei heruntergeladen Java Basics - Anfänger-Themen 2
D jProgressBar soll bei 100% sein wenn sql Abfrage inkl. jTable schreiben fertig ist... Java Basics - Anfänger-Themen 5
H if-Abfrage double wert Java Basics - Anfänger-Themen 5
M Erstes Prog. OS Abfrage Java Basics - Anfänger-Themen 9
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
B Boolean abfrage Java Basics - Anfänger-Themen 3
D Variablen Rücksprung nach If Abfrage Java Basics - Anfänger-Themen 16
T If- Abfrage Java Basics - Anfänger-Themen 8
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
D if-Abfrage Java Basics - Anfänger-Themen 6
G Einfache if-Abfrage der Main-Argumente Java Basics - Anfänger-Themen 3
C If abfrage zu getBackground Java Basics - Anfänger-Themen 2
T abfrage eines Integer Array s Java Basics - Anfänger-Themen 5
feardorcha boolean array false - true - Abfrage Java Basics - Anfänger-Themen 10
G Adminrechte abfrage Java Basics - Anfänger-Themen 5
S Abfrage Objekt-Array nach Datentypen Java Basics - Anfänger-Themen 6
R If-Abfrage, || funktioniert nicht Java Basics - Anfänger-Themen 4
S TabbedPane: nach Abfrage oldTab selektieren Java Basics - Anfänger-Themen 5
B Abfrage mittels Variable vereinfachen Java Basics - Anfänger-Themen 6
C Treffer Abfrage Java Basics - Anfänger-Themen 19

Ähnliche Java Themen

Neue Themen


Oben