Jackson „InvalidTypeIdException: Typ-ID konnte nicht aufgelöst werden“ beim Deserialisieren der Klasse mit der AnnotatioJava

Java-Forum
Anonymous
 Jackson „InvalidTypeIdException: Typ-ID konnte nicht aufgelöst werden“ beim Deserialisieren der Klasse mit der Annotatio

Post by Anonymous »

Ich versuche nicht zu verstehen, wie jackson-dataformat-avro Typ-IDs auflöst. Ich habe eine Klasse erfolgreich serialisiert und versuche nun, sie erneut zu deserialisieren, mit demselben Schema. Es verfügt über ein privates Feld „name“ vom Typ LocalizedString. Aber ich erhalte die folgende Ausnahme:

Code: Select all

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')
Die LocalizedString-Klasse sieht folgendermaßen aus:

Code: Select all

@JsonTypeInfo(use=JsonTypeInfo.Id.NAME, property="type")
@Value
public class LocalizedString {

private Map strings;

...
}
In der Avro-Schemadatei habe ich das Namensfeld wie folgt eingegeben:

Code: Select all

{
"name": "name",
"type": {
"type": "record",
"namespace": "org.example",
"name": "LocalizedString",
"fields": [
{
"name": "type",
"type": "string"
},
{
"name": "strings",
"type": ["null", {
"type": "map",
"values": "string"
}]
}
]
}
}
Wenn ich die Annotation @JsonTypeInfo weglasse, funktioniert es. Allerdings verwende ich es anderswo für die Json-Serialisierung, daher würde ich es gerne behalten.

Was ist hier das spezifische Problem für Avro?

Und vielleicht ist es auch problematisch, dass der Schlüssel der Strings-Map kein String ist?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post