Пользовательский десериализатор 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 вместо желаемого объекта. Пожалуйста, объясните мне, где я ошибаюсь, заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/435 ... ava-object
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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