Ich verwende derzeit Jackson 1.4.2 und versuche Deserialisierung von code
Werte (eindeutige Bezeichner für Typinformationen), die von unserer Benutzeroberfläche zurück an die Java-Controller (Servlets) übergeben werden.Jackson erkennt @JsonCreator-Annotation nicht
Es gibt mehrere Typen (zB ABCType
, XYZType
, etc.), dass alle von einem AbstractType
erstrecken, aber jeder konkreter Typ hat eine statische Factory-Methode, die als einzigen Parameter, eine eindeutige Kennung, und gibt das Typ-Objekt (Name, zugehörige Typen, Beschreibung, gültige Akronyme usw.), die durch diesen Identifikator repräsentiert werden. Die statische Methode in jedem konkreten Typ (zB XYZType
) mit @JsonCreator
kommentiert:
@JsonCreator
public static XYZType getInstance(String code) {
.....
}
Das Problem, das ich aber sehe eine Ausnahme von Jackson Mapper geworfen wird versucht, die json zu diesen Typen deserialisieren:
verursacht durch: org.codehaus.jackson.map.JsonMappingException: Kein Standardkonstruktor für type gefunden [einfacher Typ, Klasse com.company.type.XYZtype]: kann nicht vom Json-Objekt instanziiert werden.
Was ich hier der @JsonCreator
Anmerkung zu statischen Factory-Methoden am fehlt (oder ist es mit Jackson zu tun 1.4.2 kämpfen mit den konkreten Typen der sich von einem AbstractType
?)?