Attualmente sto utilizzando Jackson 1.4.2 e sto tentando di deserializzare i valori code
(identificatori univoci per le informazioni sul tipo) che vengono passati dall'interfaccia utente ai controller Java (Servlet).Jackson non riconosce l'annotazione @JsonCreator
Ci sono diversi tipi (ad esempio ABCType
, XYZType
, etc.) che tutti si estendono da un AbstractType
, ma ogni tipo di cemento ha un metodo factory statico che prende come unico parametro, un identificatore univoco, e restituisce l'oggetto tipo (nome, tipi associati, descrizione, acronimi validi, ecc.) rappresentati da tale identificatore. Il metodo statico all'interno di ogni tipo concreto (ad esempio XYZType
) è annotata con @JsonCreator
:
@JsonCreator
public static XYZType getInstance(String code) {
.....
}
Il problema che sto vedendo se è un'eccezione lanciata da mapper di Jackson cercando di deserializzare il JSON a quei tipi:
Causato da: org.codehaus.jackson.map.JsonMappingException: Nessun costruttore predefinito trovato per tipo [tipo semplice, classe com.company.type.XYZtype]: impossibile creare un'istanza dall'oggetto Json.
Quello che mi manca qui del @JsonCreator
annotazione metodi factory statici (o è a che fare con Jackson 1.4.2 prese con i tipi concreti che si estendono da un AbstractType
?)?