В настоящее время я использую Jackson 1.4.2 и пытаюсь десериализовать значения code
(уникальные идентификаторы для информации о типе), которые передаются из нашего пользовательского интерфейса обратно в контроллеры Java (сервлеты).
Существует несколько типов (например, ABCType
, XYZType
и т. Д.), Которые расширяются от AbstractType
, но каждый конкретный тип имеет метод статической фабрики, который принимает в качестве единственного параметра уникальный идентификатор и возвращает объект типа (имя, связанные типы, описание, действительные сокращения и т. д.), представленный этим идентификатором. Статический метод в каждом конкретном типе (например, XYZType
) помечается @JsonCreator
:
@JsonCreator
public static XYZType getInstance(String code) {
.....
}
Проблема, с которой я сталкиваюсь, - это исключение, выдвинутое картографом Джексона, пытающимся десериализовать json для следующих типов:
Причина: org.codehaus.jackson.map.JsonMappingException: не найден конструктор по умолчанию для типа [простой тип, класс com.company.type.XYZtype]: невозможно создать экземпляр объекта Json.
Что мне здесь не хватает в аннотации @JsonCreator
к статическим фабричным методам (или это связано с тем, что Jackson 1.4.2 борется с конкретными типами, начинающимися с AbstractType
?)?