Я застрял, пытаясь понять, как Jackson-Dataformat-Avro разрешает идентификаторы типа. Я успешно сериализовал класс и теперь пытаюсь снова покинуть его, с той же схемой. Он имеет частное поле «Имя» типа LocalizedString . Но я получаю следующее исключение: < /p>
com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve type id 'org.example.LocalizedString' as a subtype of [simple type, class org.example.LocalizedString]: known type ids = [LocalizedString] (for POJO property 'name')
< /code>
класс LocalizedString < /code> выглядит следующим образом: < /p>
@JsonTypeInfo(use=JsonTypeInfo.Id.NAME, property="type")
@Value
public class LocalizedString {
private Map strings;
...
}
< /code>
В файле схемы Avro я набрал поле < /code> следующим образом: < /p>
{
"name": "name",
"type": {
"type": "record",
"namespace": "org.example",
"name": "LocalizedString",
"fields": [
{
"name": "type",
"type": "string"
},
{
"name": "strings",
"type": ["null", {
"type": "map",
"values": "string"
}]
}
]
}
}
< /code>
Если я оставляю аннотацию @jsontypeinfo < /code>, то это работает. Тем не менее, я использую его для сериализации JSON в другом месте, поэтому я бы хотел сохранить его. < /P>
Какова конкретная проблема для Avro здесь?>
Подробнее здесь: https://stackoverflow.com/questions/612 ... ializing-c
Jackson "InvalidtyPeidexception: не удалось разрешить идентификатор типа" при десеризации класса с аннотацией @jsontypei ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение