相关疑难解决方法(0)

使用ResourceNotFoundException的简单DynamoDB请求失败

我刚刚使用Java SDK(v1.8)启动并运行DynamoDB.我使用AWS控制台创建了一个非常简单的表.我的表有一个主哈希键,它是一个String(没有范围).我已经将一个项目放入表中,其中包含4个其他属性值(所有字符串).

我正在为表中的那个项目做一个简单的Java请求,但它失败了ResourceNotFoundException.我绝对肯定我提供的表名是正确的,因为我用来查询该项的主哈希键的名称.表状态在AWS控制台中列出,Active我也可以看到该项及其值.

这是我得到的错误:

Requested resource not found (Service: AmazonDynamoDB; Status Code: 400; Error Code: ResourceNotFoundException; Request ID: ...)
Run Code Online (Sandbox Code Playgroud)

我尝试了以下(使用dynamodbv2类的版本):

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);
Run Code Online (Sandbox Code Playgroud)

我也尝试使用所有这些类的较旧的,已弃用的版本,如下所示:

GetItemRequest request = new GetItemRequest()
        .withTableName(TABLE_NAME)
        .withKey(new Key().withHashKeyElement(new AttributeValue().withS(value)));
GetItemResult result = client.getItem(request);
Run Code Online (Sandbox Code Playgroud)

......但结果却是一样的.
ResourceNotFoundException对它的理解是它表示引用的表名或属性是无效的,但实际情况并非如此.如果表在Creating状态太早,也可以抛出它,但我的表是Active.

java amazon-web-services amazon-dynamodb aws-sdk

13
推荐指数
1
解决办法
1万
查看次数