DynamoDBMapper - impossible d'instancier la classe
Je suis en cours d'exécution dans un problème de base Java DynamoDBMapper dans Amazon AWS toolkit lancer le "impossible d'instancier la classe" erreur d'exception. C'est ma première tentative d'utilisation de la DBMapper, donc je ne suis pas entièrement sûr j'ai tout d'installation de droit. Mon code peut être trouvé ci-dessous:
public static void main(String[] args) {
dynamoDB = new AmazonDynamoDBClient(credentials);
DynamoDBMapper mapper = new DynamoDBMapper(dynamoDB);
PStatus data = mapper.load(PStatus.class, "online", new Integer(1655));
String assigned = data.getAssigned();
System.out.println(assigned);
}
@DynamoDBTable(tableName = "projectStatus")
public class PStatus {
private Integer projID;
private String status;
private String assigned;
@DynamoDBHashKey(attributeName = "status")
public String getStatus() { return status; }
public void setStatus(String status) { this.status = status; }
@DynamoDBRangeKey(attributeName = "projID")
public Integer getId() { return projID; }
public void setId(Integer projID) { this.projID = projID; }
@DynamoDBAttribute(attributeName = "assigned")
public String getAssigned() { return assigned; }
public void setAssigned(String assigned) { this.assigned = assigned; }
}
Je suis fondamentalement juste essayer d'effectuer une GetItemRequest, puis en tirer un attribut spécifique, mais j'obtiens le message d'erreur de pointage à la ligne PStatus data = mapper.load(PStatus.class, "onFarm", new Integer(1655));
. Qu'est-ce exactement je fais mal?
Edit: Exact de l'Exception ci-dessous:
Exception in thread "main" com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: Failed to instantiate class
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.createKeyObject(DynamoDBMapper.java:325)
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:313)
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:212)
at test.TestGet.main(TestGet.java:20)
Caused by: java.lang.InstantiationException: test.TestGet$PStatus
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.createKeyObject(DynamoDBMapper.java:323)
Pouvez-vous s'il vous plaît modifier et ajouter la totalité de la pile d'exception? C'était à l'origine un InstantiationException ou IllegalAccessException? Pouvez-vous créer une nouvelle instance de PStatus?
Mis à jour avec l'exception exacte. La ligne 20 est celui que j'ai mentionné avant. Ils n'ont pas vraiment aller dans le détail sur la façon d'obtenir les données à l'aide de la mappeur, indiquant seulement qu'il était possible à l'aide de la méthode load. L'exemple qu'ils ont donné pour la méthode de chargement inclus seulement la ligne, j'obtiens le message d'erreur (pas le reste de l'); la seule différence étant le nom de la classe (dont j'ai déjà essayé celui utilisé; pas de dés). J'ai peut-être juste de venir avec quelque chose pour essayer de bien; je vais vous laisser savoir si ce que je pense qui est bon ou pas une fois que j'ai essayer...
Mis à jour avec l'exception exacte. La ligne 20 est celui que j'ai mentionné avant. Ils n'ont pas vraiment aller dans le détail sur la façon d'obtenir les données à l'aide de la mappeur, indiquant seulement qu'il était possible à l'aide de la méthode load. L'exemple qu'ils ont donné pour la méthode de chargement inclus seulement la ligne, j'obtiens le message d'erreur (pas le reste de l'); la seule différence étant le nom de la classe (dont j'ai déjà essayé celui utilisé; pas de dés). J'ai peut-être juste de venir avec quelque chose pour essayer de bien; je vais vous laisser savoir si ce que je pense qui est bon ou pas une fois que j'ai essayer...
OriginalL'auteur DGolberg | 2013-04-26
Vous devez vous connecter pour publier un commentaire.
Ajouter un constructeur vide donc l'appel java.lang.Classe.newInstance0(Source Inconnue) de travail:
OriginalL'auteur some some
Trouvé la réponse. Il n'était pas tout à fait ce que je pensais, mais il a fini par être que j'avais la classe dans l'mauvais emplacement. La façon dont ils l'ont montré, j'étais sous l'impression que c'était une sous-classe, mais PStatus nécessaires à sa propre classe, de fichiers et de tous. J'essayais de la sous-catégorie à l'intérieur de TestGet et ce n'est pas aimer. Suppose que c'était plus un Java problème j'ai eu de la DBMapper. Encore à apprendre!
OriginalL'auteur DGolberg
J'ai eu le même problème et l'a résolu en supprimant tous les constructeurs de la classe en cours d'initialisation.
OriginalL'auteur Aliza