Пользовательский десериализатор Kafka, преобразующий в объект JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Пользовательский десериализатор Kafka, преобразующий в объект Java

Сообщение Anonymous »

Я использую интеграцию Spring Kafka и у меня есть собственный универсальный сериализатор/десериализатор значений, как показано ниже


Сериализатор:

Код: Выделить всё

public class KafkaSerializer implements Serializer {

private ObjectMapper mapper;

@Override
public void close() {
}

@Override
public void configure(final Map settings, final boolean isKey) {
mapper = new ObjectMapper();
}

@Override
public byte[] serialize(final String topic, final T object) {
try {
return mapper.writeValueAsBytes(object);
} catch (final JsonProcessingException e) {
throw new IllegalArgumentException(e);
}
}
}

Десериализатор:

Код: Выделить всё

public class KafkaDeserializer implements Deserializer {

private ObjectMapper mapper;

@Override
public void close() {
}

@Override
public void configure(final Map settings, final boolean isKey) {
mapper = new ObjectMapper();
}

@Override
public T deserialize(final String topic, final byte[] bytes) {
try {
return mapper.readValue(bytes, new TypeReference() {
});
} catch (final IOException e) {
throw new IllegalArgumentException(e);
}
}
}
Сериализатор работает отлично, но когда дело доходит до десериализации значений при получении сообщения, я получаю LinkedHashMap вместо желаемого объекта. Пожалуйста, объясните мне, где я ошибаюсь, заранее спасибо.

Вернуться в «JAVA»