5

我从 dynamoDB 开始。我使用注释映射实体如下:

@DynamoDBTable(tableName = "ProductCatalogz")
public static class Book {
    private int id;+
    private String title;+
    private String ISBN;+
    private Set<String> bookAuthors;+

    // private DimensionType dimensionType;

    @DynamoDBHashKey(attributeName = "Id")
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @DynamoDBAttribute(attributeName = "Title")
    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    @DynamoDBAttribute(attributeName = "ISBN")
    public String getISBN() {
        return ISBN;
    }

    public void setISBN(String ISBN) {
        this.ISBN = ISBN;
    }
}

public static void main(String[] args) throws IOException {
    AWSCredentials credentials = new PropertiesCredentials(
     Tester2.class.getResourceAsStream("/AwsCredentials.properties"));

     client = new AmazonDynamoDBClient(credentials);
     Region usWest2 = Region.getRegion(Regions.US_EAST_1);
     client.setRegion(usWest2);

     Book book = new Book();
     book.setId(1);
     book.setTitle("Book 502");
     book.setISBN("5555555555555");
     book.setBookAuthors(new HashSet<String>(Arrays.asList("Author1",
         "Author2")));
     // book.setDimensions(dimType);

     DynamoDBMapper mapper = new DynamoDBMapper(client);
     mapper.save(book);
}

但是当我运行这个错误时:

Exception in thread "main" ResourceNotFoundException: Status Code: 400, AWS Service: AmazonDynamoDBv2, AWS Request ID: NSG3K0BQOBCPNQONE8, AWS Error Code: ResourceNotFoundException, AWS Error Message: Requested resource not found
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:644)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:338)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:190)
at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:1245)
at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.updateItem(AmazonDynamoDBClient.java:1026)
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.save(DynamoDBMapper.java:636)
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.save(DynamoDBMapper.java:483)
at test.Tester2.main(Tester2.java:47)

请帮我

4

2 回答 2

9

该消息Requested resource not found表示未找到 Dynamo DB 表。您应该首先通过 AWS 控制台、API 或 CLI 创建它。

于 2013-06-07T05:54:57.487 回答
3

确保您已在客户端上设置端点

BasicAWSCredentials b = new BasicAWSCredentials("Access Key ID","Secret Access Key");           
AmazonDynamoDBClient client = new AmazonDynamoDBClient(b);
client.setEndpoint("dynamodb.ap-northeast-1.amazonaws.com");    

有关 DynamoDB 端点的完整列表,请参阅http://docs.aws.amazon.com/general/latest/gr/rande.html#ddb_region

于 2015-12-29T10:46:58.253 回答