2013-06-07 2 views
4

나는 dynamoDB로 시작합니다.AWS 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); 
} 

을하지만이 오류를 실행할 때 : I annotion 매핑을 사용하여이 따라, 엔티티

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) 

는 메시지 Requested resource not found 의미

답변

9

도와하시기 바랍니다 디나모 DB 테이블을 찾을 수 없습니다. AWS 콘솔, API 또는 CLI를 통해 먼저 생성해야합니다.

2

당신이

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을 참조하십시오 클라이언트 엔드 포인트를 설정했는지 확인
관련 문제