Estou com um erro ao tentar customizar a deserialização para o LogService.
Estou enviando somente um registro peo NewOrderMain para tentar facilitar as coisas.
Ao manter o deserializador do value como StringDeserializer tudo funciona perfeitamente no LogService e no EmailService, uma vez que ambos esperam strings.
O problema é que ao tentar usar o deserializador da classe GsonDeserializer o LogService apresenta um erro enquanto o FraudDetectorService e o EmailService funcionam perfeitamente.
Como podem ver, ele consegue deserializar o email, mas ao tentar deserializar o order que foi passado ele produz esse erro e termina com código 1.
O meu método deserialize é este, por isso é possível ver o print com o objeto e seu tipo. O erro em GsonDeserializer.java:34 é a linha de retorno.
@Override
public T deserialize(String s, byte[] bytes) {
var object = new String(bytes);
System.out.println("Type of " + object + " is " + object.getClass().getName());
return gson.fromJson(object, type);
}
Isso simplesmente não faz sentido. Como ele consegue deserializar se eu passar o StringDeserializer direto, mas dessa forma indireta ele não consegue? Alguém mais teve esse problema?
kafka-clients==3.3.1
slf4j-simple==1.7.29
gson==2.10