Mi sto solo alzando e correndo con DynamoDB utilizzando Java SDK (v1.8). Ho creato una tabella molto semplice utilizzando la console AWS. La mia tabella ha una chiave hash primaria, che è una stringa (senza intervallo). Ho messo un singolo oggetto nella tabella con altri 4 valori di attributo (tutte le stringhe).Richiesta DynamoDB semplice non riuscita con ResourceNotFoundException
Sto facendo una semplice richiesta Java per quell'elemento nella tabella, ma non riesce con ResourceNotFoundException
. Sono assolutamente sicuro che il nome della tabella che sto fornendo sia corretto, così come il nome della chiave di hash primaria che sto usando per interrogare l'oggetto. Lo stato della tabella è elencato nella console AWS come Active
e posso vedere anche l'oggetto e i suoi valori.
Questo è l'errore che sto ricevendo:
Requested resource not found (Service: AmazonDynamoDB; Status Code: 400; Error Code: ResourceNotFoundException; Request ID: ...)
Ho provato quanto segue (utilizzando le dynamodbv2
versioni delle classi):
Map<String, AttributeValue> key = new HashMap<String, AttributeValue>();
key.put(PRIMARY_KEY, new AttributeValue().withS(value));
GetItemRequest request = new GetItemRequest()
.withTableName(TABLE_NAME)
.withKey(key);
GetItemResult result = client.getItem(request);
Ho anche provato ad utilizzare il versioni obsolete e deprecate di tutte queste classi, come questa:
GetItemRequest request = new GetItemRequest()
.withTableName(TABLE_NAME)
.withKey(new Key().withHashKeyElement(new AttributeValue().withS(value)));
GetItemResult result = client.getItem(request);
... ma è lo stesso risultato.
La mia comprensione di ResourceNotFoundException
è che significa che il nome della tabella o l'attributo referenziato non è valido, il che non è il caso. Può anche essere lanciato se la tabella è troppo presto nello stato Creating
, ma la mia tabella è Active
.
Grazie risparmiatore di vita ... – Naruto
funziona per me –
Grazie anche per menzionare i pacchetti particolari –