У меня есть иерархия Java POJOS, базовый класс абстрактный. Чтобы Джексон мог десериализовать из JSON в правильные конкретные типы, я пометил базовый класс @JsonTypeInfo(use=JsonTypeInfo.Id.CLASS)
. Тем не менее, я получаю следующую ошибку, когда Джексон пытается десериализации:
com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Missing type id when trying to resolve subtype of [simple type, class com.foo.MyAbstractClass]: missing type id property '@class'
at [Source: (byte[])""{\"id\":10,\"params\":[\"foo\",\"bar\"],\"@class\":\"com.foo.MyConcreteClass\"}""; line: 1, column: 1]
Поле идентификатора типа @class
находится в полезной нагрузке JSON, но Джексон не может его найти. Есть идеи, что происходит? Обратите внимание, что десериализация Джексона происходит прозрачно; Я использую Spring Cloud Stream.