Actualmente estoy usando Jackson 1.4.2 y estoy intentando deserializar los valores code
(identificadores únicos para la información de tipo) que pasan de nuestra IU a los controladores Java (Servlets).Jackson no reconoce la anotación @JsonCreator
hay múltiples tipos (por ejemplo ABCType
, XYZType
, etc.) que se extienden todos desde una AbstractType
, pero cada tipo de hormigón tiene un método de fábrica estática que toma como un solo parámetro, un identificador único, y devuelve el objeto de tipo (nombre, tipos asociados, descripción, acrónimos válidos, etc.) representados por ese identificador. El método estático dentro de cada tipo concreto (por ejemplo XYZType
) se anota con @JsonCreator
:
@JsonCreator
public static XYZType getInstance(String code) {
.....
}
El problema que estoy viendo es sin embargo una excepción lanzada por asignador de Jackson intentar deserializar el JSON a esos tipos:
Causado por: org.codehaus.jackson.map.JsonMappingException: No se encontró ningún constructor predeterminado para el tipo [tipo simple, clase com.company.type.XYZtype]: no se puede crear una instancia del objeto Json.
Qué me estoy perdiendo aquí @JsonCreator
de la anotación a métodos estáticos (de fábrica o se trata de hacer con Jackson 1.4.2 luchando con los tipos de hormigón que se extienden desde una AbstractType
?)?