Я пытаюсь изменить устаревшее монолитное приложение, которое использует сериализацию Java в качестве механизма сохранения для использования ArangoDB.
Я столкнулся с проблемой при сохранении объектов, содержащих другие объекты, поскольку это приводит к следующему исключению:
VPackValueTypeException: ожидаемый тип OBJECT`
Я использую Java-драйвер Arango, а не весенние данные Arango.
Я пытался использовать сериализацию Arango по умолчанию, а также писать свой собственный сериализатор, наряду с этим я также пытался использовать Джексона в качестве сериализатора.
Ниже приведен пример одного из моих сериализаторов.
public class ArangoDbChunkSerializer extends ArangoDbSerializerDeserializer implements VPackSerializer<Chunk>
{
protected static final String CHUNK_NAME = "chunk";
protected static final String CHUNK_SIZE = "chunkSize";
protected static final String ITEMS = "items";
@Override
public void serialize(VPackBuilder builder, String attribute, Chunk value, VPackSerializationContext context)
throws VPackException
{
builder.add(attribute, ValueType.OBJECT, false);
builder.add(SERIALIZABLE_CLASS_NAME, value.getSerializableClassName());
builder.add(CHUNK_SIZE, value.getChunkSize());
VPack vPack = new VPack.Builder()
.registerSerializer(Row.class, new ArangoDbRowSerializer())
.build();
VPackSlice vPackSlice = vPack.serialize(value.getItems());
builder.add(vPackSlice);
builder.close();
}
}
Исключение происходит внутри
builder.close ();
Любая помощь будет отличной - спасибо за чтение этого:)