Msgpack Универсальная сериализация / десериализация

Я использую msgpack интегрированный с платформой Axon. Поэтому в обработчике событий аксона я получаю объект во время выполнения, который может быть любого типа. Поскольку тип объекта неизвестен, я хочу использовать универсальную сериализацию / десериализацию. Сериализация выполнена правильно, но проблема возникает, когда я десериализирую поток байтов. например:

public <S, T> T deserialize(SerializedObject<S> serializedObject) {
    byte[] serializedBytes= (byte[]) serializedObject.getData();
    Object bytes = null;
    try {
        bytes=objectMapper.readValue(serializedBytes,Object.class);
        System.out.println("After deserialization : "+bytes);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return (T) bytes;
}

где serializedObject имеет пользовательский метод getData(), который содержит сериализованные байты. Здесь я читаю значение и даю представление как Object.class Я всегда получаю LinkedHashMap в возвращаемом значении для цели. Существует ли какой-либо стандартный способ выполнения ОБЩЕЙ сериализации / десериализации для любого типа объекта с использованием msgpack.

1 ответ

Без информации о типе невозможно десериализовать объект во время выполнения, используя msgpack, см. Здесь

Другие вопросы по тегам